2013-03-19 35 views
0

我正在做一個Android應用程序,並且我在報告中出現了一些與「內存異常」有關的問題,經過網上的很多搜索之後,我發現android:background正在將內存中的背景圖像加載。SetBackgroundDrawable在內存中加載圖像?

,所以我會刪除我所有的「機器人:背景」的聲明在我的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 2013-03-19 10:57:34

+0

最好是預先縮放圖像並將其放入res文件夾中。您可以針對不同的屏幕尺寸或密度制定不同的比例尺http://developer.android.com/guide/topics/resources/providing-resources.html – 2013-03-19 12:08:33