Использование памяти фоновым изображением Android

Проект яЯ работаю над использованием нескольких "высокое разрешение" фоны (обратите внимание на цитаты). Просто чтобы попасть в ситуацию, одним из них является файл PNG размером 640x935 1.19M. Насколько я знаю, даже если Android распаковывает изображения в память как необработанные данные, это должно быть:

640 x 935 x 4 байта = 2,39 мили '

У меня проблемы с памятью в моем проекте, которые я не могу понять, и я надеюсь, что кто-то может пролить свет на этот вопрос. Я'Назову два устройства, на которых я работаю, и некоторые результаты.

Чтобы убедиться, что это неВ качестве второй проблемы я сделал действие, не загружая фон при первом создании, а затем, когда пользователь нажимает кнопку, все, что он делает, это:

findViewById(R.id.completed_block_background).setBackgroundResource(R.drawable.blockbackgroundbottom1);

Затем, используя DDMS с "Обновление кучи " на процессе (и сначала заставляя GC убедиться, что это победило 'это не проблема), яm получает следующие результаты памяти:

Nexus S: с 18 до 26 м (разница 8 м)

Galaxy Nexus: с 28 до 39 м (разница в 11 м)

Итак, как вы можете видеть, если поместить теоретически 2,39 млн несжатого изображения в фоновый режим, то это увеличит использование памяти на 8 и 11 млн. Может кто-нибудь объяснить, почему это так и есть ли какое-то решение?

Единственное решение, которое мне удалось найти, - это использование растровых изображений, чтобы уменьшить разрешение вдвое или уменьшить формат канала (пока это то, что я сделал, переключил их на 565 RGB, но это создает некоторые проблемы с полосами, которые я не могу принять).

Я также принял бы, если естьНичего не поделаешь, объяснение, почему это происходит. Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос