安卓是否会重复使用从资源中加载的图片?

5

我在一个Activity中有多个ImageViews,它们都使用同一张来自资源的图片位图。

ImageViewOne.setImageResource(R.drawable.frequently_used_image);
ImageViewTwo.setImageResource(R.drawable.frequently_used_image);
ImageViewThree.setImageResource(R.drawable.frequently_used_image);

Android是否会为使用相同资源的所有其他ImageView分配内存以加载位图并重用它?还是每次将其设置为ImageView时都会加载位图?
谢谢!
1个回答

6
从Android团队的Dianne Hackborn引用:
此外请注意,Resources已经为您维护了Drawable的缓存,使用此功能,因此您无需为从Resources检索的任何Drawable实现自己的缓存。
来源:这个答案:drawable.setCallback(null)的后果

这是否意味着,如果我的应用程序有大量的可绘制文件,即使我从未在应用程序中使用它们,它也会占用内存? - baekacaek
@baekacaek 不是的。缓存是一种“智能”的存在。它只保留被使用的图像,并在需要内存时将它们删除。 - MaciejGórski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接