2015-09-01 3 views
0

У меня есть пара фоновых изображений для вертикальной и горизонтальной компоновки в приложении для Android. Это jpeg-изображения с общим размером 236 КБ.Проблемы с памятью с фоновыми изображениями, несмотря на небольшой размер

У меня заканчивается память, хотя с сообщением об ошибке "Out of memory on a 23047212-byte allocation".

Как я могу получить ресурс, требующий выделения 23 МБ, при этом фоновые изображения составляют 236 КБ?

Проблема возникает только при использовании фоновых изображений в моих действиях.

+0

В ярлыке приложения манифеста можно установить значение переменной heroid true. –

ответ

0

Размер файла изображения в КБ не имеет прямого отношения к этой проблеме, но размер изображения в пикселях наряду с другими факторами. Итак, если вы хотите уменьшить потребление памяти, самым простым способом было бы использовать изображения с меньшими размерами.

Этот вопрос может помочь вам:

Android background image memory usage

+0

Изображения 1067 × 600 и 600 x 1067, так что не очень большой. Невозможно использовать фоновый рисунок такого размера и больше? (в случае больших устройств). Любое меньшее разрешение, и они выглядели бы ужасно. – Petter

+0

Спасибо за ссылку. Размещение изображений в папке drawable-nodpi, похоже, решило проблему :) – Petter

0

Другая проблема заключается в том, что Android не выпускает собственные массивы, используемые для данных изображений, автомагически в точно так же, как и для других объектов ява во времени GC , Imho вам нужно отслеживать количество ссылок и освобождать их самостоятельно. Но только в том случае, если у вас много новых изображений все время. Что-то вроде очень длинного списка изображений или пользователей с аватарами. Или может быть, ваш фон загружается снова и снова.

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