概述:
控件是每个Adnroid APP都必不可少的一部分,无论是使用系统控件还是使用自定义控件。这些控件组成了精美的界面。
本章将讲解Android控件架构,以及如何实现自定义控件。
本章你讲了解到以下内容:
- Android控件架构
- View的测量和绘制
- ViewGroup的测量和绘制
- 自定义控件的三种方式
- 事件的拦截机制
Android控件架构
Android控件大致可以分为两类
- ViewGroup控件
- View控件
ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。
通过ViewGroup,整个界面上的控件形成了一个树形结构,即我们常说的控件树,上层控件负责下层子控件的测量与绘制,并传递交互事件。
通常在Activity中使用findViewById()方法,就是在空间树中以树的深度优先遍历来查找对应元素。
在每棵控件树的顶部,都有一个ViewParent对象,这就是整棵树的控制核心,所有的交互管理时间都有它来统一调度和分配,从而可以对整个视图进行整体控制。如下图所示: