【问题标题】:FileNotFoundException while showing the image from the local storage显示本地存储中的图像时出现 FileNotFoundException
【发布时间】:2016-01-25 08:59:32
【问题描述】:

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

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

但是在这样做时我得到了异常,我已经检查了图像所在的路径。我已经在清单中授予了 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限

原木猫

E/BitmapFactory:无法解码流: java.io.FileNotFoundException: /file:/storage/sdcard0/13448FILE.jpg: 打开失败:ENOENT(没有这样的文件或目录)

【问题讨论】:

  • file:/更改为file://
  • 谢谢兄弟,我试过了,但它不起作用

标签: android filenotfoundexception android-bitmap


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢删除 "file:" 后的工作。是的,你是对的,我尽量记住所有三点,并保留你告诉我的变化。非常感谢你的帮助
【解决方案2】:

使用它来获取默认路径:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2010-12-02
    • 2011-01-11
    相关资源
    最近更新 更多