对于像我这样的问题,我找到了很多答案但是对我来说没有意义.让我解释.
我有一个ImageButton,让用户拍照并在界面上显示它.当我尝试获取图像URI时,它返回null:
Uri uri = data.getData();
Run Code Online (Sandbox Code Playgroud)
我在互联网上进行了一些搜索,找到了类似的解决方案:
@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);
}
Run Code Online (Sandbox Code Playgroud)
对我来说,它没有意义,因为当调用转到方法onActivityResult()时,图片已经保存在DCIM文件夹中,并且没有任何理由再次保存它.那我为什么要用呢?
是否有可能找到另一种从捕获的图像中检索URI的方法?
提前致谢.
图片已保存在DCIM文件夹中,没有任何理由再次保存.
不必要.引用文档ACTION_IMAGE_CAPTURE:
调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置.如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象.
(这里的"额外字段"是一个额外的键入data)
您粘贴的代码段正在检索data额外内容,因此图像不会存储在任何位置.
是否有可能找到另一种从捕获的图像中检索URI的方法?
您已经在第一个代码段中拥有了此代码 - 如果您在请求中指定了Urias ,则将返回到手中的图像.EXTRA_OUTPUTACTION_IMAGE_CAPTUREUriIntentonActivityResult()
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |