显示本地存储中的图像时出现 FileNotFoundException

FileNotFoundException while showing the image from the local storage

我正在尝试显示我正在使用的下载文件夹中的图像。

    Bitmap bmImg = BitmapFactory.decodeFile("file:/storage/sdcard0/download/13448FILE.jpg");
    message_image.setImageBitmap(bmImg);

但是在这样做时我得到了异常,我已经检查了这条路径图像位于 there.I 已经在清单

中获得了 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限

登录猫

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /file:/storage/sdcard0/13448FILE.jpg: open failed: ENOENT (No such file or directory)

首先,decodeFile()不使用scheme。您需要删除 file:.

其次,除了轻量级测试之外,不要对路径进行硬编码。您的路径在很多 Android 设备上都是错误的。

第三,不要像您在这里所做的那样在主应用程序线程上解码图像。有许多 image loading libraries for Android 可以在后台线程上安全地解码图像,准备就绪后将其加载到您的 ImageView 中。

使用它来获取默认路径:

Bitmap bmImg = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/download/13448FILE.jpg");