2015-06-30 4 views
-3

У меня есть этот неотвеченный вопрос, относящийся к изображениям. У меня есть изображение около 1 МБ, и я назначаю изображения на изображение с шириной и высотой 100dp and 80dp соответственно. Но когда я присваиваю изображение примерно 5 образам изображений, приложение вылетает с Out of Memory Error

Итак, когда я назначаю 1 МБ изображение на такое маленькое изображение, что происходит? Разве андроид не уменьшает его? Кроме того, произошел сбой приложения, потому что он не мог взять нагрузку 5 МБ в память?

EDIT
У меня есть 5 ImageViews на экране. Я назначаю изображение всем, если их такAndroid: Назначение изображения с высоким разрешением для меньшего изображения ImageView

myImageView.setImageURI(item.getImageUri()); 
+0

В каких папках (-ов) есть изображение? Это 'drawable'? – Lamorak

+0

@ Lamorak: Нет, я читаю изображения из URI ExternalStorage – Ashwin

+0

Тогда моего ответа должно быть достаточно, чтобы помочь вам. – Lamorak

ответ

0

Android загружает весь файл изображения в память, а затем масштабирует его. Чтобы избежать OOM, вы должны load large bitmaps efficiently.

+0

нет, 'ImageView' не масштабирует растровые изображения, вместо этого он« масштабирует »свой холст, чтобы нарисовать изображение. Разнообразные размеры – pskink

+0

@pskink: Таким образом, размер изображения по-прежнему остается 1 МБ, хотя он показан в таком виде маленькое изображениеview !!? – Ashwin

+1

@Ashwin да, 'ImageView' не касается ввода' Bitmap' – pskink

Смежные вопросы