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

时间:2020-05-22 17:47:58

标签: java android-studio canvas bitmap drawable

我是Android开发的新手,因此面临此问题。 我想使用 Canvas drawBitmap()函数在屏幕上插入png图像。但是,当我尝试解码此类图像时,出现此错误:

无法解码流:java.io.FileNotFoundException: /drawable/fa_diesis.png:打开失败:ENOENT(无此类文件或目录) W / System.err: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int android.graphics.Bitmap.getWidth()'

以下代码:

\b

可绘制文件夹中,我具有以下结构: res folder image 。我注意到我要使用的照片带有标签(androidTest),也许它不应该带有标签。

有人可以帮忙吗?谢谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试重新复制粘贴您的图像。该文件应该只是没有androidTest的名称。添加图像时,请确保目录位于\ app \ src \ main \ res \ drawable

然后删除文件类,并且变量也更改以下代码,以将可绘制的图像访问为位图

位图位图= BitmapFactory.decodeFile(file.getAbsolutePath());

成为

位图位图= BitmapFactory.decodeResource(getResources(),R.drawable.fa_diesis);

方法

private void drawImage(float x, float y) {
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.fa_diesis);
        Rect source = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        Rect bitmapRect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        canvas.drawBitmap(bitmap, x, y, new Paint());
}

希望对您有帮助

答案 1 :(得分:0)

问题已解决,可以再次添加所需的图像, 也许我添加得不好。现在,图像旁边不再有“ androidtest”标语。我还用 decodeResource 函数替换了 decodeFile

非常感谢您!