BitmapFactory.decodeFile返回空图像存在

保存文件:

FileOutputStream fo = null; try { fo = this.openFileOutput("test.png", Context.MODE_WORLD_READABLE); } catch (FileNotFoundException e) { e.printStackTrace(); } bitmap.compress(CompressFormat.PNG, 100, fo) 

加载文件:

 String fname = this.getFilesDir().getAbsolutePath()+"/test.png"; Bitmap bMap = BitmapFactory.decodeFile(fname); i.setImageBitmap(bMap); 

最后一行给出一个空指针exception,为什么BitmapFactory.decodeFile返回null? 我可以validation文件得到正确保存,因为我可以使用adb拉它,看到正确显示png。

Solutions Collecting From Web of "BitmapFactory.decodeFile返回空图像存在"

如果NullPointerException直接在这一行:

i.setImageBitmap(BMAP);

那么你的问题是, inull 。 鉴于你打电话给setImageBitmap(),我猜i是一个ImageView – 确保你的findViewById()调用正在工作。

另外,你应该使用以下来获取fname

String fname = new File(getFilesDir(),“test.png”)。getAbsolutePath();

在DecodeFile方法中使用options参数时,请确保InJustDecodeBounds属性设置为false ,否则将始终返回null。 这可以设置为true,当你只是想解码文件,但你不需要进一步在你的应用程序/代码。 这样就不需要分配额外的内存。 看这里的例子。