当涉及到Android开发和性能时,如果你有imageview那么哪一个会更快或更好(反正有什么不同!):setImageResource和setDrawable 我知道一个人需要ID,而另一个需要绘制。但无论如何我都会从ID获得drwable。 你认为哪一个更好?
或者我应该完全避免使用imageview并使用加载/绘制位图? 太多选择令人困惑 感谢您的评论
答案 0 :(得分:63)
他们是不同的。来自Android documents。
setImageResource: 这会对UI线程上的位图读取和解码 ,这可能会导致延迟打嗝。
如果这是一个问题,请考虑使用setImageDrawable(android.graphics.drawable.Drawable)或setImageBitmap(android.graphics.Bitmap)和BitmapFactory。
答案 1 :(得分:2)
这些作为便利方法存在,因此您不必总是解决始终获取可绘制,或始终必须传入资源ID。各种情况需要不同的方法。
总而言之,没有区别。使用适用于您的情况。
答案 2 :(得分:2)
我认为setImageDrawable
更适合内存密集型操作 - 比如滚动RecyclerView,从memcache获取位图。但对于更简单的事情,setImageResource
现在是更好的API。