什么是View
View是Android中各种组件的基类,表现为屏幕上的各种视图。
自定义View的分类
- 自定义View
- 自定义ViewGroup
自定义View时的关键方法
- onMeasure 测量
- onLayout 布局
- onDraw 绘制
View在安卓系统中的定位
View坐标
- left 从View左边界到父View左边界的距离
- top 从View上边界到父View上边界的距离
- right 从View右边界到父View左边界的距离
- bottom 从View下边界到父View上边界的距离
MeasureSpec 测量规格
MeasureSpec代表了一个32位的int值,高2位代表了SpecMode(测量模式),低30位代表了SpecSize(测量大小)。
SpecMode分为3类:
- UNSPECIFIED 未指定 父容器不对View有任何限制,自定义View一般用不到
- EXACTLY 准确值 父容器检测出View所需要的精确大小
- AT_MOST 最大值 View不能超过父容器指定的一个最大值
LayoutParams 布局参数
子View的MeasureSpec需要View自己的LayoutParams和父容器的MeasureSpec共同确定。 对于顶级View(DecorView)来说,他的MeasureSpec由窗口的尺寸和他自己的LayoutParams共同确定,对于普通View来说,其MeasureSpec由父容器的MeasureSpec和自身的LayoutParams来共同确定。