我正在制作一个Android应用程序,我在报告中出现了“内存不足异常”的问题,经过网上多次搜索后,我发现android:background正在内存中加载背景图片。
所以我将删除我的XML文件中的所有“android:background”声明,并将其替换为:
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”是否在内存中加载图片?
答案 0 :(得分:1)
当然,确实如此。你在显示器上看到的只是存储在内存中。设置背景后立即加载。从xml充气或明确设置时。请勿使用大于所需的图像作为资源。并尽可能避免使用大型HQ图像。