Layout
Layout过程用来确定View在父容器中的布局位置,它是由父容器获取子View的位置参数后,调用子View的layout方法并将位置参数传入实现的,ViewRootImpl的performLayout代码如下:
Draw
Draw操作用来将控件绘制出来,绘制的流程从perfromDraw方法开始,核心代码如下:
private void draw(boolean fullRedrawNeeded){
....
draw(fullRedrawNeeded);
...
}
可以看到最终调用到每个View的draw方法绘制每个具体的View,绘制基本上可以分为六个步骤:
步骤1 绘制View的背景 步骤2 保存canvas图层 为fading做准备 步骤3 绘制View的内容 步骤4 绘制子View 步骤5 绘制View的fading边缘并恢复图层 步骤6
网友评论