我发现了很多像我这样的问题的答案,但它们对我来说没有意义。让我解释。Android - 从刚刚拍摄的图片获取URI(不再保存图像)
我有一个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?
提前致谢。
那要看情况。如果您在启动相机意图时未添加文件,那么您将无法获得文件Uri,“数据”将返回位图。 – inmyth