Layout
Layout过程用来确定View在父容器中的布局位置,它是由父容器获取子View的位置参数后,调用子View的layout方法并将位置参数传入实现的,ViewRootImpl的performLayout代码如下:



Draw
Draw操作用来将控件绘制出来,绘制的流程从perfromDraw方法开始,核心代码如下:
private void draw(boolean fullRedrawNeeded){
....
draw(fullRedrawNeeded);
...
}

可以看到最终调用到每个View的draw方法绘制每个具体的View,绘制基本上可以分为六个步骤:






网友评论