[안드로이드/android] BitmapFactory.decodeStream return null

Posted by 앱해피
2015. 8. 24. 18:33 안드로이드 스튜디오

 

옵션(Options)이 설정된 경우 BitmapFactory.decodeStream 메소드 값이 항상 널(Null)을 반환할 때 해결방법

 

 

InputStream is = new BufferedInputStream(conn.getInputStream());

 

is.mark(is.available());

 

// First decode with inJustDecodeBounds=true to check dimensions

 

final BitmapFactory.Options options = new BitmapFactory.Options();

 

options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(stream, null, options);

is.reset(); 

 

// Calculate inSampleSize

options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

 

// Decode bitmap with inSampleSize set

options.inJustDecodeBounds = false;


return BitmapFactory.decodeResourceStream(null, null, stream, null, options);

 

 

 

 

 

 

 

[Solution]

 

1. InputStream 생성 과정에서 BufferedInputStream을 이용한다.

 

2. options.inJustDecodeBounds = true; 를 호출하기 전에 is.mark(is.available()); 호출한다.


3. options.inJustDecodeBounds = true; 를 호출하기 전에 is.reset(); 호출한다.

 

감사합니다 ^_^