현재 구현중인 App이 일종의 이미지 뷰어 입니다.

성능 향상을 위해 ( 이미지가 무거울때를 위해서 )

갤러리를 사용하고 Adapter 쪽에서 getView 호출시

먼저 BitmapFactory.Options.inSampleSize 를 이용하여 작은 이미지를 반환합니다.

그리고 백그라운드에서 진짜 이미지를 가져와서 기존의

작은 이미지를 대체 합니다.

이때 작은 이미지나 큰 이미지나 가져오는 메소드는 동일합니다.

BitmapFactory.Options.inSampleSize 의 값으로  콘트롤 할 수 있습니다.

근데 불규칙하게 백그라운드로 작업 하는 큰 이미지를 가져올때 BitmapFactory 내부에서 에러가 납니다.

작은 이미지를 가져오는것은 항상 정상 동작하고요

BitmapFactory.Options option = new BitmapFactory.Options();
option.inSampleSize = n;

InputStream is = getInputStream((int)p, absolutePath);
bitmap = BitmapFactory.decodeStream(is, null, option);


bitmap = BitmapFactory.decodeStream(is, null, option);

해당 메소드에서 에러가 나는 부분입니다.

InputStream 이 null 도 아닙니다.

D/dalvikvm( 1998): GC freed 1352 objects / 258560 bytes in 112ms
W/System.err( 1998): java.io.IOException
W/System.err( 1998):     at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:210)
W/System.err( 1998):     at java.io.FilterInputStream.read(FilterInputStream.java:138)
W/System.err( 1998):     at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:157)
W/System.err( 1998):     at java.io.BufferedInputStream.read(BufferedInputStream.java:346)
W/System.err( 1998):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
W/System.err( 1998):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:459)
W/System.err( 1998):     at ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(AAAA.java:1154)
W/System.err( 1998):     at qqqqqqqq$ImageLoad.doInBackground(Adapter.java:128)
W/System.err( 1998):     at qqqqqqqq$ImageLoad.doInBackground(Adapter.java:1)
W/System.err( 1998):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
W/System.err( 1998):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
W/System.err( 1998):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
W/System.err( 1998):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
W/System.err( 1998):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
W/System.err( 1998):     at java.lang.Thread.run(Thread.java:1096)
W/System.err( 1998): Caused by: java.util.zip.DataFormatException: buffer error
W/System.err( 1998):     at java.util.zip.Inflater.inflateImpl(Native Method)
W/System.err( 1998):     at java.util.zip.Inflater.inflate(Inflater.java:272)
W/System.err( 1998):     at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:191)
W/System.err( 1998):     ... 14 more
D/skia    ( 1998): ---- read threw an exception
D/skia    ( 1998): --- decoder->decode returned false

로그켓입니다. 패키지명 클래스명은 감췄습니다. ^^;;

BitmapFactory.java:459 안으로 접근해 보면 결국 Native Method 라서 더 이상 접근도 안되네요

조언 부탁드립니다.