在一些手机上,如拍照时的上下文传递的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);
}
}
}