在onDraw()中调用invalidate()是否是一种很好的编程习惯?
问题描述:
- 在
onDraw()
内部拨打invalidate()
是否是一种很好的编程习惯?
按我的理解,呼吁invalidate()
内onDraw()
是昂贵的,如果有到画布上没有变化不是必需的。在onDraw()中调用invalidate()是否是一种很好的编程习惯?
- 是
invalidate()
相当于异步版本onDraw()
?
根据我的理解,它们是等价的。纠正我,如果我错了。谢谢。
答
如果您的数据发生变化并且需要重新绘制,请致电invalidate()
。您通常不会在onDraw()
中执行此操作,因为此时您正在绘制当前数据,而不是更改它。 (在某些情况下,您可能想要执行此操作,例如运行动画,但通常我会建议使用延迟的消息来控制自己的更新时间。)
感谢您的澄清。 – hsbgowd 2011-02-15 04:25:24