一直想要总结一下view绘制的一些经验,近期正好在看《Android内核剖析》这本书,借这个机会,结合源码&一些经验,对View的绘制源码进行一些学习、总结,过程中结合实践demo对自定义View的一些经验进行总结。
1.View绘制的源码解读
View整体绘制流程
当一个应用启动时,会启动一个主Activity,Android系统会根据Activity的布局来对它进行绘制。绘制会从根视图ViewRootImpl的performTraversals()方法开始,是一个树形的递归过程,从上到下遍历整个视图树,每个View控件负责绘制自己,而ViewGroup负责通知自己的子视图进行绘制。View的绘制是从上到下,按树形结构绘制。
这个图很重要,各位请认真看完整篇文章,相信您对这个简单的图,会有不一样的理解。
1.1 起源
由小编的上篇文章【Android Framework学习的基础概论】可知,一切的起始来源于,Activty里面持有一个Window,这个Window有一个唯一实现子类PhoneWindow,PhoneWindow创建->DecorView创建,在Activit