【问题标题】:Does android reuse images loaded from resource?android是否重用从资源加载的图像?
【发布时间】:2013-06-13 23:15:13
【问题描述】:

所以我在一个 Activity 中有多个 ImageView,它们都使用资源中的相同图像位图。

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

android 是否分配内存来加载位图一次并为使用相同资源的所有其他 ImageView 重用它?或者它是否每次加载位图,并将其设置为 ImageView?

谢谢!

【问题讨论】:

    标签: android bitmap android-imageview android-resources


    【解决方案1】:

    引用 Android 团队的 Dianne Hackborn:

    还请记住,Resources 已经使用此工具为您维护了 Drawable 缓存,因此您无需为从 Resources 中检索的任何 Drawable 实现自己的缓存。

    来自这个答案:Consequences of drawable.setCallback(null);

    【讨论】:

    • 这是否意味着如果我的应用有大量可绘制文件,即使我从未在我的应用上使用它们,它也会占用内存?
    • @baekacaek 不,缓存是一个“智能”存在。它只保留使用过的图像,并在需要内存时丢弃它们。
    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2011-07-22
    • 2015-07-11
    相关资源
    最近更新 更多