绘制流程说明
- Activity启动之后,会从ViewRootImp开始进行遍历,从onmeasure,layout,draw依此进行,即测量,布局,绘制、
- measure:从父view中传递的MeasureSpec(计算大小的方法)大小,测量宽高
- layout:根据measure得到参数,确定位置,即四个点的位置
- draw:将View绘制上去
总结:自定义ViewGroup需要重写OnMeasure,OnLayout,Ondraw,自定义View则不需要OnLayout,原因是OnLayout是负责分发所有View的位置
整个应用启动到界面显示的绘制流程
- activity的setcontentview入手,发现是一个window调用的
- windown的抽象方法是在phoneWindown实现
- PhoneWindown中有个mDecor对象,其实是decorview窗口最顶层的视图,处理视图逻辑
- activityThread处理decordview的逻辑,从viewroot开始,具体有个viewrootimpl
- 实现就是对父view进行遍历,遍历分别有:测量,布局,绘制,分别对应view的方法是measure,layout,draw
关于Measure,Layout,Draw具体实现说明
- Measure
- Layout
- Draw
- 绘制背景
- 绘制view的内容,view有子view绘制子view视图
- 绘制view的装饰