我将 Log.d() 调用放入扩展 View 的 onDraw() 中,这样我就可以看到调用的频率和时间。它在 View 的实例化时被调用,这并不奇怪。但后来我注意到,它会在 onTouchEvent() 处理的每次点击时被调用,即使我的代码没有做任何与图形远程相关的事情。然而,在 documentation对于 View ,我似乎找不到任何关于何时实际调用 onDraw() 的信息。我并不真正关心我在这里的特定项目(这对我来说不会造成问题),我只想知道某处是否有一个列表或显示 View 操作顺序的东西,特别是什么原因onDraw() 被调用。
最佳答案
AFAIK, View 的 onDraw() 在以下情况下被调用:
- 最初绘制 View
- 无论何时 invalidate()在 View 上调用
您或系统可以在需要时调用 Invalidate。例如,许多 View 会改变它们在 Touch 上的外观,例如 EditText 获得轮廓和光标,或者按钮处于按下状态。因此, View 会在触摸时重绘。
我同意最好有一份详细说明 Views 工作的文档,如果存在并且有人知道在哪里可以找到它,请告诉我们。
关于android - View.onDraw() --- 它什么时候被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912406/