文档章节

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

麦兜LK
 麦兜LK
发布于 2014/10/11 16:19
字数 233
阅读 3574
收藏 17

方法一:

此方法会由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
深圳
高级程序员
私信 提问
实现在edittext中任意插入图片

MyEditText: public class MyEditText extends EditText { public MyEditText(Context context) { super(context); } public MyEditText(Context context, AttributeSet attrs) { super(cont......

guozhendan
06/26
0
0
获取Android设备上的详细的摄像头信息

如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头的详细信息,在Android 2.3SDK中得到了增强: 在android.hardware.Camera类...

子曰疯
2013/12/26
0
2
音视频直播技术--Android视频采集(Camera2)

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

音视频直播技术专家
2017/07/24
0
0
Android Camera(三)

把预览类放到布局中 Camera的预览类,如上文所示的示例,必须要跟用户界面控件一起放到一个Activity的布局中,以便拍照或录像。本段向你显示如果构建一个基本的用于预览的Activity布局。 下面...

长平狐
2012/10/16
6.8K
0
Android上使用camera拍照,把获取的照片上传到远程服务器

参考原文: Take a Photo from Android Camera and Upload it to a Remote PHP Server 使用Java上传文件 从Apache Software Foundation下载HttpClient 4.3.4。 在工程中添加下面的jar包: 参......

yushulx
2014/08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

教你React Native使用fetch实现图片上传

这篇文章主要介绍了详解react关于事件绑定this的四种方式,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 在react组件中,每个方...

前端攻城老湿
9分钟前
1
0
webpack+vuex+axios 跨域请求数据的示例

本篇文章主要介绍了webpack+vuex+axios 跨域请求数据,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 使用vue-li 构建 webpack项...

前端攻城小牛
13分钟前
1
0
基础编程题目集-6-10 阶乘计算升级版

本题要求实现打印非负整数阶乘,其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。 输入格式: 每个输入包含一个测试...

niithub
14分钟前
1
0
聊聊flink的FsStateBackend

序 本文主要研究一下flink的FsStateBackend StateBackend flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/StateBackend.java @PublicEvolvingpublic interface Sta......

go4it
43分钟前
1
0
webpack配置proxyTable时pathRewrite无效的解决方法

webpack配置接口地址代理 在项目开发中,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们在本地启动服务器后,比如本地开发服务下是 http://localhost:8080 ...

前端小攻略
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部