文档章节

Android从Camera中获取图片的两种方法

麦兜LK
 麦兜LK
发布于 2014/10/11 16:19
字数 233
阅读 3502
收藏 17
点赞 0
评论 0

方法一:

此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰

/**   启动Camera */
private void intentCamera(){
    try {
         Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
         startActivityForResult(cameraIntent, 0);
     } catch (ActivityNotFoundException e) {
         e.printStackTrace();
     }
}

/**  在onActivityResult中获取图片  */
private void getImgFromCamera(){
    Bundle bundle = data.getExtras();
    bm = (Bitmap) bundle.get("data");
    if (bm != null)
        bm.recycle();
    bm = (Bitmap) data.getExtras().get("data");
    if(bm != null){
        img.setImageBitmap(bm);
    }
}

方法二:

此方法所拍即所得,但是会在Sd卡上产生临时文件

/*** 打开照相机     */
private void intentCamera(){
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory() + "/Images");
    if(!file.exists()){
        file.mkdirs();
    }
    Uri mUri = Uri.fromFile(
        new File(Environment.getExternalStorageDirectory() + "/Images/", 
        "cameraImg" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
    cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
    cameraIntent.putExtra("return-data", true);
    startActivityForResult(cameraIntent, 1);
}

/*** 获取相机返回的数据      */
private void getImgFromCamera(){
        
    ContentResolver cr = this.getContentResolver();
    try {
        if(cameraBitmap != null) 
            cameraBitmap.recycle();// 如果不释放的话,不断取图片,将会内存不够
        cameraBitmap = BitmapFactory.decodeStream(cr.openInputStream(mUri));
        if(bm != null){
            img.setImageBitmap(bm);
        }
    } catch (FileNotFoundException e) {
         // TODO Auto-generated catch block
        Log.e("error", "从相机中获取图片失败=====");
        e.printStackTrace();
    }
}


© 著作权归作者所有

共有 人打赏支持
麦兜LK
粉丝 3
博文 20
码字总数 12754
作品 0
深圳
高级程序员
音视频直播技术--Android视频采集(Camera2)

介绍 今天为大家介绍一下如何在 Android 上进行视频采集。在 Android 系统下有两套 API 可以进行视频采集,它们是 Camera 和 Camera2 。Camera是以前老的 API ,从 Android 5.0(21)之后就已经...

音视频直播技术专家 ⋅ 2017/07/24 ⋅ 0

Android Camera&Matrix图像变换

Camera与Matrix Android UI系统中,Camera充当着相机的角色,无论是系统成像还是UI绘制。都离不开Camera。但是在Android系统中,存在两种Camera,一种是视觉成像的(拍照、摄像),另一种是图...

IamOkay ⋅ 04/04 ⋅ 0

项目需求讨论 - WebView下拍照及图片选择功能

前言: 如果觉得掘金上看图片放大看不清楚,可以跳到另外的同步发布的链接看,放大图片下部有个可以查看原图功能,很清楚:项目需求讨论 - WebView下拍照及图片选择功能 现在很多app里面,都...

青蛙要fly ⋅ 今天 ⋅ 0

调用多媒体功能

Android系统的多媒体功能使用的是MediaStore类,这个类是Android多媒体数据库的封装类。无论我们是调用多媒体功能发送的intent,data,extra等,还是从多媒体数据库存取数据,都要通过这个类。...

亭子happy ⋅ 2014/03/06 ⋅ 0

Android插件化开发之动态加载技术学习

Android插件化开发之动态加载技术学习 为什么要插件化开发和动态加载呢?我认为原因有三点: 可以实现解耦 可以解除单个dex函数不能超过65535的限制 可以给apk瘦身,比如说360安全卫士,整个...

幸运券发放 ⋅ 05/18 ⋅ 0

adb启动程序命令:adb shell am start

在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 启动的方法为 adb shell # am start -n {包(package)名}/{包名}.{活动(activity)名称} 程序的入...

lwaif ⋅ 06/15 ⋅ 0

Android 音视频开发入门指南(2)

GLSurfaceView是OpenGL中的一个类,也是可以预览Camera的,而且在预览Camera上有其独到之处。独到之处在哪?当使用Surfaceview无能为力、痛不欲生时就只有使用GLSurfaceView了,它能够真正做...

shareus ⋅ 04/23 ⋅ 0

android相机拍照

1、系统权限 <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="and......

风过后 ⋅ 2016/04/12 ⋅ 0

Android 【插件化】"偷梁换柱"的高手-VirtualApk源码解析

关于VirtualApk VirtualApk github : https://github.com/didi/VirtualAPK VirtualAPK wiki : https://github.com/didi/VirtualAPK/wiki 工程介绍 工程结构 CoreLibrary是VirtualApk(以下简称......

qq_17250009 ⋅ 04/12 ⋅ 0

Android基础性能数据获取(api或/proc/读取)

主要资料参考 Android系统源码在线查看网址 Linux平台Cpu使用率的计算 腾讯开源移动端性能测试APP:GT 3.1 内存篇 内存:表示当前进程内存的使用情况,内存占用过高可能会引起内存抖动,或O...

某杰 ⋅ 05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 46分钟前 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 57分钟前 ⋅ 0

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_object TYPE gos_s_obj.DA...

JerryWang_SAP ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

导读 人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云...

问题终结者 ⋅ 今天 ⋅ 0

637. Average of Levels in Binary Tree - LeetCode

Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这个树,把map里面填值,遍历结束后,再遍历这个map,把每...

yysue ⋅ 今天 ⋅ 0

IDEA配置和使用

版本控制 svn IDEA版本控制工具不能使用 VCS-->Enable Version Control Integration File-->Settings-->Plugins 搜索Subversion,勾选SVN和Git插件 删除.idea文件夹重新生成项目 安装SVN客户......

bithup ⋅ 今天 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部