Android解码文件返回null

时间:2016-09-20 19:16:00

标签: android file

我有以下代码:

 Bitmap b= BitmapFactory.decodeFile(imagePath);

其中imagPath值为/ external / images / media / 43426(我通过允许用户使用此代码从手机中选择图像来阅读它:

Uri selectedImage = imageReturnedIntent.getData();
imagePath = selectedImage.toString();

问题是b总是为空!我已经添加了READ_EXTERNAL_STORAGE的权限,并尝试了网上找到的许多解决方案但没有成功!

2 个答案:

答案 0 :(得分:1)

  

其中imagPath值为/ external / images / media / 43426

这不是how to use a Uri,特别是content方案,正如你所拥有的那样。

或者:

答案 1 :(得分:1)

From documentation:

  

将文件路径解码为位图。如果指定的文件名为null,或者无法解码为位图,则该函数返回null。

通过使用Logcat或任何日志记录源,您可以验证imagePath = "/external/images/media/43426"实际上不是File,只是URI

您可以从URI获取文件或其内容:

Log.v(TAG, "Uri: " + data.getData().toString());
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());