我是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),也许它不应该带有标签。
有人可以帮忙吗?谢谢。
答案 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 。
非常感谢您!