我发现有很多类似我的问题的答案,但它们对我来说都不太合适。让我解释一下。
我有一个ImageButton,让用户拍照并在界面上显示图片。当我尝试获取图像URI时,它返回null:
Uri uri = data.getData();
我在互联网上做了一些搜索,发现了一些解决方案,例如:
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
try {
if (resultCode == Activity.RESULT_OK) {
updateProfilePicure = Boolean.TRUE;
switch(requestCode){
case 0:
Bundle extras = data.getExtras();
Object xx = data.getData();
Bitmap imageBitmap = (Bitmap) extras.get("data");
Uri tempUri = getImageUri(imageBitmap);
imageView.setImageBitmap(imageBitmap);
break;
default: break;
}
}
} catch(Exception e){
e.printStackTrace();
}
}
public Uri getImageUri(Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(
ApplicationContext.getInstance().getContext().getContentResolver(), inImage,
"Title", null);
return Uri.parse(path);
}
对我而言,这没有意义,因为当调用方法onActivityResult()时,图片已经保存在DCIM文件夹中,没有再次保存的理由。那么为什么我要使用它呢?
有没有其他方法可以检索从拍摄的图像获取URI的方式?
提前感谢。