Android从Camera中获取图片的两种方法
博客专区 > 麦兜LK 的博客 > 博客详情
Android从Camera中获取图片的两种方法
麦兜LK 发表于3年前
Android从Camera中获取图片的两种方法
  • 发表于 3年前
  • 阅读 3346
  • 收藏 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();
    }
}


共有 人打赏支持
粉丝 3
博文 20
码字总数 12754
×
麦兜LK
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: