gpt4 book ai didi

Android - setImageResource 比将资源 ID 解码为位图更有效吗?

转载 作者:行者123 更新时间:2023-11-29 20:51:04 26 4
gpt4 key购买 nike

考虑 ListView 适配器中 getView 方法的这两个代码示例。它们在内存方面是相同的还是 setImageResource 的工作效率更高?

我知道 decodeResource 每次都会创建一个新的位图并占用一些内存。所以如果我用足够大的 drawble 调用它足够多次,它会导致内存不足错误。但是我在源代码中找不到setImageResource的作品。

public View getView(int position, View convertView, ViewGroup parent) {
ImageView img = new ImageView(context);
img.setImageBitmap(BitmapFactory.decodeResource(getResources(),resIds[position]));
return img;
}


public View getView(int position, View convertView, ViewGroup parent) {
ImageView img = new ImageView(context);
img.setImageResource(resIds[position]) ;
return img;
}

最佳答案

文档里说

This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup.

此外,它说

If that's a concern, consider using setImageDrawable() or setImageBitmap() and android.graphics.BitmapFactory instead.

这已经暗示了您问题的答案:不,它并没有提高效率。为了节省内存和运行时间,请存储 BitmapFactory(或 Drawable)的结果,并注意不要在每次设置 ImageView 时都执行它。

关于Android - setImageResource 比将资源 ID 解码为位图更有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29129306/

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