setImageResource对setDrawable

时间:2012-03-19 17:16:13

标签: android android-layout

当涉及到Android开发和性能时,如果你有imageview那么哪一个会更快或更好(反正有什么不同!):setImageResource和setDrawable 我知道一个人需要ID,而另一个需要绘制。但无论如何我都会从ID获得drwable。 你认为哪一个更好?

或者我应该完全避免使用imageview并使用加载/绘制位图? 太多选择令人困惑 感谢您的评论

3 个答案:

答案 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。

相关问题