繁体   English   中英

Android解码文件返回null

[英]Android decode file returns null

我有以下代码:

 Bitmap b= BitmapFactory.decodeFile(imagePath);

imagPath值是/ external / images / media / 43426(我通过允许用户使用以下代码从手机中选择图像来读取它:

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

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

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

那不是像您一样使用Uri ,尤其是使用带有content方案Uri

要么:

  • 使用可用于Android的众多图像加载库之一 ,将完整的Uri传递给它们,或者

  • 使用ContentResolveropenInputStream() ,然后将该InputStream传递给BitmapFactory.decodeStream()

从文档:

将文件路径解码为位图。 如果指定的文件名为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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM