【发布时间】:2017-11-07 23:07:57
【问题描述】:
我的资产目录中有一张图片:
file:///android_asset/content/images/avatar-img.png
然后我从中创建一个 Uri 并使用它将其加载到 Drawable 中:
String imgFile = "file:///android_asset/content/images/avatar-img.png";
myDrawable.setImageUri(Uri.parse(imgFile));
当它运行时,我在日志中看到这个并且没有图像:
W/ImageView(24335): Unable to open content: file:///android_asset/content/images/avatar-img.png
W/ImageView(24335): java.io.FileNotFoundException: /android_asset/content/images/avatar-img.png (No such file or directory)
W/ImageView(24335): resolveUri failed on bad bitmap uri: file:///android_asset/content/images/avatar-img.png
但是如果我将相同的 Uri 输入到我的 WebView 中,图像会毫无问题地加载:
mWebView.loadUrl(imgFile);
所以,我们知道:
- 图像存在。
- 图像未损坏。
- 图像可读。
注意事项:
- 使用 BitmapFactory.decodeFile() 也同样失败。
- 我尝试添加 READ_EXTERNAL_STORAGE 权限,但没有成功。
- 我在日志中没有看到任何明显的权限问题。
测试设备:
- 三星 Galaxy S6 Edge
- Android 7.0
- APK 最小 23,目标 26
想法?
【问题讨论】:
-
每次看到Uri操作和Android 7.0都会有很多疑虑,能不能在低版本的android上测试一下?
-
为什么要发布指向您自己问题的重复链接?
标签: android permissions imageview