android - View.onDraw() --- 它什么时候被调用?

标签 android graphics ondraw

我将 Log.d() 调用放入扩展 View 的 onDraw() 中,这样我就可以看到调用的频率和时间。它在 View 的实例化时被调用,这并不奇怪。但后来我注意到,它会在 onTouchEvent() 处理的每次点击时被调用,即使我的代码没有做任何与图形远程相关的事情。然而,在 documentation对于 View ,我似乎找不到任何关于何时实际调用 onDraw() 的信息。我并不真正关心我在这里的特定项目(这对我来说不会造成问题),我只想知道某处是否有一个列表或显示 View 操作顺序的东西,特别是什么原因onDraw() 被调用。

最佳答案

AFAIK, View 的 onDraw() 在以下情况下被调用:

  1. 最初绘制 View
  2. 无论何时 invalidate()在 View 上调用

您或系统可以在需要时调用 Invalidate。例如,许多 View 会改变它们在 Touch 上的外观,例如 EditText 获得轮廓和光标,或者按钮处于按下状态。因此, View 会在触摸时重绘。

我同意最好有一份详细说明 Views 工作的文档,如果存在并且有人知道在哪里可以找到它,请告诉我们。

关于android - View.onDraw() --- 它什么时候被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912406/

相关文章:

java - 当在预定义位置选择上一个圆时,在 Android Canvas 中绘制一个圆

java - 在微调器中显示 TTS 可用语言

Cygwin 图形?

android - 在导航组件中包含来自 Backstack 的 fragment

python - 在一个子像素位置将一个图像补丁插入另一个图像

c# - 获取两个矩形的不重叠区域

android - ComposeShader中的PorterDuff.Mode.MULTIPLY无法正常工作

Android:使用 DrawPoint() 的 onDraw 方法导致 Canvas 上的抖动和失真

与 Windows 10 相比,Android 模拟器在 ubuntu 17.04 上运行速度极慢

android - 如何通过 URL 链接打开已安装的 apk?