Как сжать изображение для просмотра изображений в Android - PullRequest
0 голосов
/ 26 февраля 2011

Привет. Я хочу показать 3 или 4 изображения в моем представлении, которые хранятся в SDCard, размер изображений составляет примерно 1-2 МБ. Моя проблема в том, что когда я использую изображение в режиме просмотра изображений, оно выбрасывает исключение из памяти у меня есть опция bit and pass при декодировании изображения в растровое изображение

02-26 13:16:54.946: ERROR/dalvikvm-heap(23410): 15980544-byte external allocation too large for this process.
02-26 13:16:54.946: ERROR/dalvikvm(23410): Out of memory: Heap Size=3407KB, Allocated=2801KB, Bitmap Size=15630KB, Limit=21884KB
02-26 13:16:54.946: ERROR/dalvikvm(23410): Trim info: Footprint=3463KB, Allowed Footprint=3655KB, Trimmed=248KB
02-26 13:16:54.946: ERROR/GraphicsJNI(23410): VM won't let us allocate 15980544 bytes
02-26 13:16:54.986: ERROR/AndroidRuntime(23410): FATAL EXCEPTION: main
02-26 13:16:54.986: ERROR/AndroidRuntime(23410): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
02-26 13:16:54.986: ERROR/AndroidRuntime(23410):     at android.graphics.BitmapFactory.nativeDecodeFile(Native Method)
02-26 13:16:54.986: ERROR/AndroidRuntime(23410):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:325)

Может ли тело помочь мне в решении моей проблемы? заранее спасибо

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

Я нашел решение моей проблемы, там есть мой код:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[24*1024];  
options.inJustDecodeBounds = false;
options.inSampleSize=32;     
bmp1=BitmapFactory.decodeFile(filepath1,options);  
Bitmap b1=ThumbnailUtils.extractThumbnail(bmp1,30, 30);  
iv1.setImageBitmap(b);  
 if(bmp1!=null){  
   bmp1.recycle();
   }  
         bmp1=BitmapFactory.decodeFile(filepath1,options);
 Bitmap b2=ThumbnailUtils.extractThumbnail(bmp1,30, 30);  
 iv2.setImageBitmap(b2);  
if(bmp1!=null){  
 bmp1.recycle();
 }

аналогично я использую его для просмотра четырех изображений и установки изображения без исключения OOM

1 голос
/ 26 февраля 2011

Создайте BitmapFactory.Options и передайте значение> 1 в inSampleSize (предпочтительно степень 2), чтобы уменьшить изображение при его загрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...