【发布时间】:2021-07-13 22:42:44
【问题描述】:
我在从内部存储加载图像时遇到问题,我尝试过以下代码:
final String imagePath = "/storage/emulated/0/dummy.jpg";
ImageView img = findViewById(R.id.test_image);
if (isStoragePermissionGranted()){
File file = new File(imagePath);
if (file.exists()) {
Log.d("GalleryImages", "file is exist");
Uri uri = Uri.fromFile(file);
img.setImageURI(uri);
}else {
Log.d("GalleryImages", "file is not exist");
}
}
private boolean isStoragePermissionGranted() {
if (Build.VERSION.SDK_INT >= 23) {
if (checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
Log.d("GalleryImages","Permission is granted");
return true;
} else {
Log.d("GalleryImages","Permission is revoked");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
return false;
}
}
else {
Log.d("GalleryImages","Permission is granted");
return true;
}
}
和xml:
<ImageView
android:id="@+id/test_image"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#63C57878" />
结果是:
D/GalleryImages:已授予权限
D/GalleryImages:文件存在
但 ImageView 上什么都没有,
我也尝试过使用 Picaso 加载图像:
Picasso.get().load(file).error(R.mipmap.ic_launcher).into(img);
但也没有用。
更新
- 我已经尝试了这些solutions,但对我不起作用。
- 我已尝试在 android pie 上运行代码正常工作。
- 我尝试在另一台无法运行的 android Q 设备上运行代码。
【问题讨论】:
-
尝试在清单中使用
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/> -
@Zain 感谢您的评论我更改了权限,我还尝试通过添加
tools:node="replace"来授予读写权限,但图像视图上没有显示任何内容它说 已生成权限 文件存在但不加载图片
标签: android imageview android-internal-storage