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

时间:2011-02-15 03:44:15

标签: android ondraw

  1. invalidate()内调用onDraw()是一种很好的编程习惯吗?
  2. 根据我的理解,在invalidate()内调用onDraw()是很昂贵的,如果画布没有变化则不需要。

    1. invalidate()是否等同于onDraw()的异步版本?
    2. 根据我的理解,它们是等同的。如果我错了,请纠正我。谢谢。

1 个答案:

答案 0 :(得分:17)

如果您的数据已更改且需要重新绘制,则仅调用invalidate()。您通常不会在onDraw()中执行此操作,因为此时您正在绘制当前数据,而不是更改它。 (在某些情况下,您可能希望这样做,例如运行动画,但通常我会建议使用延迟消息来控制您自己的更新时间。)