2016-04-26 2 views
0

У меня есть существующее File в моем приложении, и я хочу преобразовать его в Bitmap с параметрами. У меня есть метод для этого. Но всегда этот метод возвращает null, и когда я пытаюсь получить свойства растрового изображения, я улавлю NullPointerException. Вот код:Android-преобразование файла в растровое изображение возвращает null всегда

public static Bitmap convertToBitmap(File file) { 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inJustDecodeBounds = true; 
    options.inSampleSize = 4; 
    return BitmapFactory.decodeFile(file.getAbsolutePath(), options); 
} 

Если удалить параметры и вызвать BitmapFactory.decodeFile(file.getAbsolutePath()) я получить OutOfMemoryError на некоторых устройствах. Что я могу сделать с этим?

ответ

0

вы можете попробовать следующий код :)

final Uri uri= Uri.fromFile(new File(file)) 
    try{ 
     Bitmap selectedImageBitMap= MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri); 
     //you have your image bitmap :) 
     } 
    catch (FileNotFoundException fileNotFoundException){ 
     Log.d("sandeep","could not find file"); 
     } 
    catch(IOException ioexception) { 
     Log.d("sandeep", "IOException"); 
     } 

Лемм знать, если у вас еще есть вопрос :) Счастливый кодирования :)

+1

Спасибо за помощь. Но, к сожалению, я поймал OutOfMemoryError :( –

0

Попробуйте это

BitmapFactory.Options bmOptions = new BitmapFactory.Options(); 
Bitmap bitmap =BitmapFactory.decodeFile(file.getAbsolutePath(),bmOptions); 
bitmap =Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true); 
Смежные вопросы