This commit is contained in:
sloop
2016-03-17 16:10:02 +08:00
parent 8d92868d0b
commit e7c7bea655

View File

@@ -126,13 +126,14 @@ AT_MOST | 10 | 000000000000000000001111011000
**PS: 实际上关于上面的东西了解即可,在实际运用之中只需要记住有三种模式,用 MeasureSpec 的 getSize是获取数值 getMode是获取模式即可。** **PS: 实际上关于上面的东西了解即可,在实际运用之中只需要记住有三种模式,用 MeasureSpec 的 getSize是获取数值 getMode是获取模式即可。**
#### 注意: #### 注意:
如果对View的宽高进行修改了<b>不要调用super.onMeasure(widthMeasureSpec,heightMeasureSpec);</b> 如果对View的宽高进行修改了不要调用*super.onMeasure(widthMeasureSpec,heightMeasureSpec);*
要调用<b>setMeasuredDimension(widthsize,heightsize);</b> 这个函数。
要调用*setMeasuredDimension(widthsize,heightsize);* 这个函数。
====== ======
### 3.确定View大小(onSizeChanged) ### 3.确定View大小(onSizeChanged)
这个函数在视图大小发生改变时调用 这个函数在视图大小发生改变时调用
**Q: 在测量完View并使用setMeasuredDimension函数之后View的大小基本上已经确定了那么为什么还要再次确定View的大小呢** **Q: 在测量完View并使用setMeasuredDimension函数之后View的大小基本上已经确定了那么为什么还要再次确定View的大小呢**
@@ -204,20 +205,20 @@ b | View底部距父View顶部的距离 | getBottom();
### 自定义View分类 ### 自定义View分类
PS 实际上ViewGroup是View的一个子类。 PS 实际上ViewGroup是View的一个子类。
类别 | 继承自 | 特点 类别 | 继承自 | 特点
--- | --- | --- --------- | --------------------- | ------------
View | View SurfaceView 等 | 不包含子View
ViewGroup | ViewGroup xxLayout等 | 包含子View ViewGroup | ViewGroup xxLayout等 | 包含子View
View | View SurfaceView 其他 | 不包含子View
### 自定义View流程 ### 自定义View流程
步骤 | 关键字 | 作用 步骤 | 关键字 | 作用
--- | --- | --- ---- | ------------- | -------------
1 | 构造函数 | View初始化 1 | 构造函数 | View初始化
2 | onMeasure | 测量View的大小 2 | onMeasure | 测量View的大小
3 | onSizeChanged | 确定View大小 3 | onSizeChanged | 确定View大小
4 | onLayout | 确定子View布局(自定义View包含子View时有用) 4 | onLayout | 确定子View布局(自定义View包含子View时有用)
5 | onDraw | 实际绘制内容 5 | onDraw | 实际绘制内容
6 | 提供接口 | 控制View或监听View某些状态。 6 | 提供接口 | 控制View或监听View某些状态。
## 参考资料: ## 参考资料: