2014-09-23 221 views
1

我的代碼:爲什麼BitmapFactory.decodeFile返回null?

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); 

文件/存儲/ sdcard0/FastBurstCamera/2014年9月15日05-24-07-461.jpg存在,但rotateBmp是空的,爲什麼?

回答

3

存在file/storage/sdcard0/FastBurstCamera/2014-09-15 05-24-07-461.jpg,但rotateBmp爲空,爲什麼?

因爲這就是你要求的。

引述the documentation for decodeFile()(強調):

解碼的位圖,或者null如果圖像數據不能被解碼,或者,如果OPTS是非空,如果OPTS要求僅返回的大小(在opts.outWidth和opts.outHeight)

引用the documentation for inJustDecodeBounds

如果設置爲true,解碼器將返回null(無位圖),但out ...字段仍將被設置,允許調用者查詢位圖而不必爲其像素分配內存。

+0

感謝您的好意,根據您的建議,我刪除了「opt.inJustDecodeBounds = true;」,然後它就可以工作。再次感謝你! – 2014-09-23 11:57:46

2
  • 原因可能是圖像尺寸大。檢查this question
  • 另一個原因可能是不會將READ_EXTERNAL_STORAGE和/或WRITE_EXTERNAL_STORAGE權限添加到您的清單文件。你添加了嗎?