【发布时间】:2015-06-19 10:32:15
【问题描述】:
当涉及到 android 开发和性能时,如果你有 imageview 那么哪一个会更快或更好(反正有区别吗!):setImageResource 和 setDrawable 我知道一个带ID,另一个带drawable。但无论如何我都会从 ID 中获得 drwable。 你觉得哪个更好?
或者我应该避免一起使用 imageview 并使用加载/绘制位图? 太多的选择令人困惑 感谢cmets
【问题讨论】:
当涉及到 android 开发和性能时,如果你有 imageview 那么哪一个会更快或更好(反正有区别吗!):setImageResource 和 setDrawable 我知道一个带ID,另一个带drawable。但无论如何我都会从 ID 中获得 drwable。 你觉得哪个更好?
或者我应该避免一起使用 imageview 并使用加载/绘制位图? 太多的选择令人困惑 感谢cmets
【问题讨论】:
它们是不同的。来自Android documents。
setImageResource: 这会在 UI 线程上进行位图读取和解码,这可能会导致延迟打嗝。
如果这是一个问题,请考虑使用 setImageDrawable(android.graphics.drawable.Drawable) 或 setImageBitmap(android.graphics.Bitmap) 和 BitmapFactory。
【讨论】:
setImageDrawable也太慢了
这些作为便利方法存在,因此您不必总是总是获取可绘制对象,或者总是必须传入资源 ID。不同的情况需要不同的方法。
总而言之,没有区别。使用适合您情况的方法。
【讨论】:
我认为setImageDrawable 更适合内存密集型操作——比如滚动 RecyclerView、从内存缓存中获取位图。但对于更简单的事情,setImageResource 是当今更好的 API。
【讨论】: