android camera工程师,Android从Camera中获取图片的两种方法

方法一:

此方法会由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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值