2014-09-23 2 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-09-15 05-24-07-461.jpg существует, но rotateBmp равно нулю, то почему?

ответ

3

Файл/storage/sdcard0/FastBurstCamera/2014-09-15 05-24-07-461.jpg существует, но rotateBmp имеет значение null, почему?

Потому что это то, о чем вы просили.

Цитирование the documentation for decodeFile() (подчеркивание добавлено):

Декодированные битовой карты, или нулевое значение, если данные изображения не может быть декодирован, или, , если ОПТС не равен нулю, если OPTS запрашивается только размер быть возвращен (в opts.outWidth и opts.outHeight)

Цитирование the documentation for inJustDecodeBounds:

Если set to true, декодер вернет null (no bitmap), но все еще будут заданы поля out ..., позволяющие вызывающему абоненту запрашивать растровое изображение без необходимости выделять память для своих пикселей.

+0

Спасибо за ваш любезный ответ, согласно вашему предложению, я удалил «opt.inJustDecodeBounds = true;», тогда он работает. Еще раз спасибо! –

2
  • Причиной может быть размер изображения большой. Проверьте this question.
  • Другой причиной может быть не добавление READ_EXTERNAL_STORAGE и/или WRITE_EXTERNAL_STORAGE прав на файл манифеста. Вы добавили?
Смежные вопросы