安卓资源:如何从资源加载位图来处理内存



当您从资源加载位图时,如:

iv.setImageResource(R.drawable.image);
  1. 如果Scaletype降低了位图的质量,它仍然保存整个原始位图吗?(我想是的,因为你可以随时更改缩放类型,你会想要完整的质量。)
  2. 如果将相同的资源ID加载到多个ImageView中,那么内存中是否只存储了一个位图
  3. 在onDestroy中扫描视图层次结构并手动回收这些位图(通过从ImageView中提取BitmapDrawable)是一种好的做法吗?还是我可以确保系统及时完成这项工作
  1. 是的,它将保持完全的质量
  2. 不,它将维护一个对象
  3. 这将由系统完成。没必要麻烦。但是,它要等到一些缓冲区充满了用于调用GC的数据。一旦缓冲区中充满了不需要的数据,就会一次从内存中删除这些对象。如果你还想,你可以照顾好

最新更新