2013-03-19 2 views
0

Я делаю приложение для Android, и у меня была некоторая проблема в отчете с «исключением из памяти», после многих поисков в сети я обнаружил, что андроид: фон загружал фоновое изображение в память.Устанавливает ли загрузочное изображение SetBackgroundDrawable в памяти?

так я удалю все мои «Android: фон» заявления в моих файлах 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, где это возможно.

+0

может ли он уменьшить проблему с «из памяти», если я загружаю каждое изображение при хорошем масштабировании? – theMouk

+0

Лучше, чтобы вы предварительно масштабировали изображение и помещали его в папку res. Вы можете иметь разностные шкалы для разных размеров экрана или плотности. Http://developer.android.com/guide/topics/resources/providing-resources.html –