android studio无法解码流:java.io.FileNotFoundException:

时间:2018-10-19 20:33:31

标签: java android

我是Android Studio的新手,我正努力使用其文件名而不是其ID加载图像。

public static Bitmap load(String name) {
    File dir = Environment.getExternalStorageDirectory();
    return BitmapFactory.decodeFile(dir + "/res/drawable/" + name + ".png");
}

这是我到目前为止所获得的,但是它抛出了FileNotFoundException:

  

无法解码流:java.io.FileNotFoundException:/storage/emulated/0/res/drawable/image.png:打开失败:ENOENT(没有这样的文件或目录)

我还向android-manifest中添加了以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我真的不知道为什么会引发异常,实际上我该使用哪条路径来解码可绘制文件夹中的文件?

1 个答案:

答案 0 :(得分:0)

您不能以这种方式加载可绘制资源。资源捆绑在apk中,它们不存储为文件。您应该改用BitmapFactory.decodeResource

在这里阅读:https://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeResource(android.content.res.Resources,%20int)