0

我正在制作一个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”是否正在将图片加载到内存中?

4

1 回答 1

1

当然,确实如此。您在显示器上看到的所有内容都存储在内存中。设置背景后,它会立即加载。从 xml 膨胀或显式设置时。不要使用大于所需的图像作为资源。并尽可能避免使用大型总部图像。

于 2013-03-19T10:54:00.810 回答