在onDraw()中调用invalidate()是否是一种很好的编程习惯?

问题描述:

  1. onDraw()内部拨打invalidate()是否是一种很好的编程习惯?

按我的理解,呼吁invalidate()onDraw()是昂贵的,如果有到画布上没有变化不是必需的。在onDraw()中调用invalidate()是否是一种很好的编程习惯?

  1. invalidate()相当于异步版本onDraw()

根据我的理解,它们是等价的。纠正我,如果我错了。谢谢。

如果您的数据发生变化并且需要重新绘制,请致电invalidate()。您通常不会在onDraw()中执行此操作,因为此时您正在绘制当前数据,而不是更改它。 (在某些情况下,您可能想要执行此操作,例如运行动画,但通常我会建议使用延迟的消息来控制自己的更新时间。)

+0

感谢您的澄清。 – hsbgowd 2011-02-15 04:25:24