Загружает ли SetBackgroundDrawable изображение в память?

Я делаю приложение для Android, и у меня возникла проблема с отчетом "исключение нехватки памяти", после многих поисков в сети я обнаружил, что android:background загружал фоновое изображение в память.

поэтому я удалю все мои объявления "android:background" в моих XML-файлах и заменю на:

    background = new BitmapDrawable(getResources(),ImageFactoring.decodeSampledBitmapFromResource(getResources(), R.drawable.catalogue_button_poeles_bois, mMaxButton_Cheminees.getLayoutParams().width, mMaxButton_Cheminees.getLayoutParams().height));
    mMaxButton_Cheminees.setBackgroundDrawable(background);

и прежде чем сделать это, я хотел бы знать, загружает ли setBackgroundDrawable изображение в память или нет?

1 ответ

Решение

Конечно, это так. Все, что вы видите на дисплее, хранится в памяти. После установки фона он сразу загружается. Либо при накачивании из xml, либо при явной настройке. Не используйте изображения больше, чем нужно в качестве ресурса. И старайтесь избегать больших изображений HQ, где это возможно.

Другие вопросы по тегам