在一些手机上,如拍照时的上下文传递的intent时,就无法从传过来的intent中获取bundle的值,就无法显示bitmap
这是我们就可以通过if语句这么处理,直接看demo
private void saveFullImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 文件夹aaaa
String path = Environment.getExternalStorageDirectory().toString()
+ "/aaaa";
File path1 = new File(path);
if (!path1.exists()) {
path1.mkdirs();
}
File file = new File(path1, System.currentTimeMillis() + ".jpg");
System.out.println("--->>" + System.currentTimeMillis());
mOutPutFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutPutFileUri);
intent.putExtra("return-data", true);
System.out.println("--->>" + mOutPutFileUri);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (data != null) {
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");
imageView.setImageBitmap(bitmap);
} else {//这里就是无法获取data时,建议采取的方法
String picpath = mOutPutFileUri.toString();
Bitmap bitmap = BitmapFactory.decodeFile(picpath);
imageView.setImageURI(mOutPutFileUri);
}
}
}
本文介绍了一种解决在手机拍照时上下文传递的intent中无法获取bundle的bitmap的问题,通过使用if语句和特定的intent设置方法,确保在不同场景下能够正确显示照片。
1611

被折叠的 条评论
为什么被折叠?



