为什么BitmapFactory.decodeFile返回null?

时间:2014-09-23 11:35:00

标签: android imageview android-bitmap

我的代码:

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inJustDecodeBounds = true;
Bitmap rotateBmp = BitmapFactory.decodeFile("/storage/sdcard0/FastBurstCamera/2014-09-15 05-24-07-461.jpg", opt);

文件/ storage / sdcard0 / FastBurstCamera / 2014-09-15 05-24-07-461.jpg存在,但rotateBmp为空,为什么?

2 个答案:

答案 0 :(得分:3)

  

文件/ storage / sdcard0 / FastBurstCamera / 2014-09-15 05-24-07-461.jpg存在,但rotateBmp为空,为什么?

因为那就是你所要求的。

引用the documentation for decodeFile()(强调补充):

  

解码后的位图,如果图像数据无法解码,则为null;如果opts为非null,则为,如果仅请求opts返回大小(在opts.outWidth和opts.outHeight中)

引用the documentation for inJustDecodeBounds

  

如果设置为true,解码器将返回null(无位图),但仍将设置out ...字段,允许调用者查询位图而无需为其像素分配内存。

答案 1 :(得分:2)

  • 原因可能是图像尺寸很大。检查this question
  • 另一个原因可能是未向您的清单文件添加READ_EXTERNAL_STORAGE和/或WRITE_EXTERNAL_STORAGE权限。你添加了吗?