gpt4 book ai didi

java - Android:使用 postInvalidate() 还是直接调用 onDraw?

转载 作者:行者123 更新时间:2023-11-29 21:06:32 28 4
gpt4 key购买 nike

据我了解,可以直接调用 onDraw 方法,而 postInvalidate() 只是调用 onDraw 方法单独的线程。如果我理解正确(如果我错了请纠正我),两者似乎都会产生相同的结果。 postInvalidate() 和直接调用 onDraw 有区别吗?一种做法比另一种更好吗?

最佳答案

是的。调用 postInvalidate 将 Canvas 设置到屏幕并将其传递给 onDraw 函数,以及其他各种逻辑。仅当您想将 View 绘制到屏幕以外的其他地方时,直接调用 onDraw 才有意义。

此外,postInvalidate 将导致它重绘在控制权返回到循环器之后,并将重绘的多个原因合并为一次重绘。它不会尝试立即绘制。调用 onDraw 会导致它立即绘制,这可能会导致严重的性能问题。它不会批处理绘图请求,导致它多次重绘。

还有其他方法,但最终结果是,除非您尝试绘制到非标准 Canvas ,否则不要直接调用 onDraw - 调用 invalidate 或 postInvalidate。

关于java - Android:使用 postInvalidate() 还是直接调用 onDraw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357506/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com