gpt4 book ai didi

android - 加载图像资源为 RGB 565

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:13 24 4
gpt4 key购买 nike

我试图降低我的应用程序的内存使用量,我注意到大部分是由 Activity 的背景引起的:在 XHDPI 中,每个 720*1280*4 = 3.6Mbytes,而 Android 似乎没有一旦不再使用它们,请立即释放它们。

有什么方法可以告诉 Android 将某些资源图像加载为 RGB 565 而不是 RGB 8888 以便在那些没有 alpha channel 的较大图像上节省一些内存?

我知道这可以通过编程方式完成,但我想知道这是否也可以通过 Activity 布局中使用的图像和背景或 setBackgroundResource() 来完成。

最佳答案

你可以这样做:

protected void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.high_scores);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Config.RGB_565;
BitmapDrawable highScoresBg = BitmapFactory.decodeResource(getResources(), R.drawable.achievements, opts);
findViewById(R.id.high_scores_root).setBackgroundDrawable(highScoresBg);

当使用 ARGB_8888 时,图像的像素将存储在 2 个字节中,而不是 4 个字节。节省了 50% 的内存,但质量当然下降了。

article告诉我们在 Android < 2.3 上,图像默认为 RGB_565。然而,如果图像有 alpha channel (例如 PNG),它将被加载到 ARGB_8888 中。在 Android >= 2.3 上,默认情况下所有图像都以 ARGB_8888 加载。

关于android - 加载图像资源为 RGB 565,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com