前言
- 自定义View 是 Android 开发者必须了解的基础
- 网上有大量关于自定义View 原理的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等
- 今天,我将全面总结自定义View 的原理,我能保证这是市面上的最全面、最清晰、最易懂的
本文秉着“结论先行、详细分析在后”的原则,即先让大家感性认识,再通过理性分析从而理解问题; 所以,请各位读者先记住结论,再往下继续看分析; 文章较长,阅读需要较长时间,建议收藏等充足时间再进行阅读
目录
1. 储备知识
1.1 ViewRoot
- 定义 连接器,对应于ViewRootImpl类
- 作用 连接WindowManager 和 DecorView 完成View的三大流程: measure、layout、draw
- 特别注意
// 在主线程中,Activity对象被创建后:// 1\. 自动将DecorView添加到Window中 & 创建ViewRootImpll对象root = new ViewRootImpl(view.getContent(),display);// 3\. 将ViewRootImpll对象与DecorView建立关联r