无法解码流:java.io.FileNotFoundException:/drawable/fa_diesis.png:打开失败:ENOENT(没有这样的文件或目录)
Unable to decode stream: java.io.FileNotFoundException: /drawable/fa_diesis.png: open failed: ENOENT (No such file or directory)
我是 Android 开发的新手,我正面临这个问题。
我想使用 Canvas 的 drawBitmap() 函数在屏幕上插入一个 png 图像。但是当我尝试解码这样的图像时,我得到了这个错误:
无法解码流:java.io.FileNotFoundException: /drawable/fa_diesis.png:打开失败:ENOENT(没有这样的文件或目录)
W/System.err: java.lang.NullPointerException: 尝试在空对象引用
上调用虚拟方法'int android.graphics.Bitmap.getWidth()'
下面是代码:
private void drawImage(float x, float y){
File file = new File("drawable/fa_diesis.png");
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
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());
}
在 drawable 文件夹中我有这样的结构:
res folder image
.我注意到我想使用的照片有标签(androidTest),也许它不应该有。
有人可以帮忙吗?谢谢
您可以尝试重新复制粘贴您的图片。该文件应该只是没有 androidTest 的名称。添加图像时,请确保目录将转到 \app\src\main\res\drawable
然后删除文件 class 并且变量也更改以下代码以访问可绘制的图像为位图
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
成为
Bitmap bitmap = 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());
}
希望对你有帮助
问题已解决,再次添加想要的图片,
也许我添加得很糟糕。现在图片旁边不再有 "androidtest" 标语。我还将 decodeFile 替换为 decodeResource 函数。
非常感谢!
我是 Android 开发的新手,我正面临这个问题。 我想使用 Canvas 的 drawBitmap() 函数在屏幕上插入一个 png 图像。但是当我尝试解码这样的图像时,我得到了这个错误:
无法解码流:java.io.FileNotFoundException: /drawable/fa_diesis.png:打开失败:ENOENT(没有这样的文件或目录) W/System.err: java.lang.NullPointerException: 尝试在空对象引用
上调用虚拟方法'int android.graphics.Bitmap.getWidth()'下面是代码:
private void drawImage(float x, float y){
File file = new File("drawable/fa_diesis.png");
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
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());
}
在 drawable 文件夹中我有这样的结构: res folder image .我注意到我想使用的照片有标签(androidTest),也许它不应该有。
有人可以帮忙吗?谢谢
您可以尝试重新复制粘贴您的图片。该文件应该只是没有 androidTest 的名称。添加图像时,请确保目录将转到 \app\src\main\res\drawable
然后删除文件 class 并且变量也更改以下代码以访问可绘制的图像为位图
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
成为
Bitmap bitmap = 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());
}
希望对你有帮助
问题已解决,再次添加想要的图片, 也许我添加得很糟糕。现在图片旁边不再有 "androidtest" 标语。我还将 decodeFile 替换为 decodeResource 函数。
非常感谢!