Android View的绘制流程可以简单概括为以下几个步骤:
测量(Measure):在View的measure()方法中,系统会根据View的布局参数以及父容器的要求来计算出View的测量宽高。
布局(Layout):在View的layout()方法中,系统会根据View的布局参数以及父容器的要求来确定View在父容器中的位置。
绘制(Draw):在View的draw()方法中,系统会通过硬件加速或者软件绘制来将View的内容绘制到屏幕上。
触摸事件分发:在View的dispatchTouchEvent()方法中,系统会将触摸事件从父容器传递到目标View,并依次调用View的onTouchEvent()方法来处理触摸事件。
重绘(Invalidation):在View的invalidate()方法中,系统会将View标记为“需要重绘”,在下一次绘制周期中重新调用View的draw()方法来进行重绘。
需要注意的是,以上流程并不是一次性完成的,而是在需要的时候会被触发。例如,当View显示在屏幕上时会触发测量、布局和绘制流程;当用户触摸View时会触发触摸事件分发流程;当调用invalidate()方法时会触发重绘流程。