位图工厂抛出 FileNotFoundException

Bitmap Factory throws FileNotFoundException

我有一个奇怪的问题。我正在尝试在我的 Android 项目中使用我的 res/drawable 文件夹中的 PNG 文件,并在我需要解码的 ImageButton(具有方法 "setImageBitmap(Bitmap bm)")中使用这样的 PNG 文件res/drawable 文件中的 PNG 图片。但是,当我复制路径并尝试像这样对其进行解码时:

public Bitmap getBitMap() {
    return BitmapFactory.decodeFile("drawable/bishop00.png");
}

我看到一些帖子说我也可以使用 BitmapFactory 的 "decodeResources" 方法,但是这段代码不在 activity 中,我不想使用 [=23] =] 作为仅使用该方法的参数,因为这应该有效。我也尝试过使用绝对路径(复制显示我系统的整个层次结构的路径)但我仍然遇到以下异常:

Unable to decode stream: java.io.FileNotFoundException

真的希望得到一些帮助,因为我完全确定该文件存在。

I am trying to use a PNG file from my res/drawable folder within my Android project

这是您开发机器上的一个文件。它不是 Android 设备上的文件。

seeing as this should work

不,不应该。

I saw some threads that said that I could also use the "decodeResources" method of BitmapFactory

这是正确答案,假设此内容首先应该是可绘制资源。虽然使用 decodeResource() 有一些合理的理由,但总体上并不常用。可能有其他更合适的使用可绘制资源的方法,或者这可能首先不应该是可绘制资源。

but this code is not in an activity

decodeResource()需要一个Context。它不一定是 Activity,尽管这通常是一个可能的候选者。您的所有代码都沿着以 Context 开头的代码路径执行;你在这里使用一个应该没有问题。