invalidate()
内调用onDraw()
是一种很好的编程习惯吗?根据我的理解,在invalidate()
内调用onDraw()
是很昂贵的,如果画布没有变化则不需要。
invalidate()
是否等同于onDraw()
的异步版本?根据我的理解,它们是等同的。如果我错了,请纠正我。谢谢。
答案 0 :(得分:17)
如果您的数据已更改且需要重新绘制,则仅调用invalidate()
。您通常不会在onDraw()
中执行此操作,因为此时您正在绘制当前数据,而不是更改它。 (在某些情况下,您可能希望这样做,例如运行动画,但通常我会建议使用延迟消息来控制您自己的更新时间。)