Android技术知识Android知识

View 的布局和绘制

2017-02-15  本文已影响55人  任教主来也

第二篇关于 View 的文章,主要说一下 View 的 layout 布局过程和 draw 绘制过程

根据第一篇 View 的测量 我们知道了 View 工作原理的具体流程,今天接着测量的过程往下进行。

View 的 layout 布局过程

目的:确定 View 的最终宽高,以及四个顶点的位置也就是在父 View 中的位置

ViewGroup 的 layout

  1. layout 方法被调用,根据参数确定在父 View 中的位置
  2. onLayout 方法中,遍历其子 View ,调用子 View 的 layout 并根据子 View 大小和父 View 对子 View 位置的限制传入参数,完成布局过程向子 View 的传递

View 的 layout

  1. layout 方法被调用,确定在父 View 中的位置,完成布局

View 的 getMeasuredWidth() 和 getWidth() 的区别

View 的绘制

ViewRootImpl 的 performLayout 完成之后,performDraw 方法会被调用,开始绘制的过程。

View 绘制的过程

  1. 绘制背景 background.draw(canvas)
  2. 绘制自己 (onDraw)
  3. 绘制 children (dispatchDraw)
  4. 绘制装饰 (onDrawScrollBars)
上一篇下一篇

猜你喜欢

热点阅读