[英]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
传递给它们,或者
使用ContentResolver
和openInputStream()
,然后将该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.