View的绘制流程
来源:互联网 发布:js删除数组中元素 编辑:程序博客网 时间:2024/06/05 16:08
http://www.jianshu.com/p/5a71014e7b1b 博客地址
View的绘制如果你有所了解,
基本分为measure、layout、draw 过程,其中比较难理解就是measure过程。
Measure过程:(绘制过程)
对于View的测量,肯定会和MeasureSpec接触,
这个MeasureSpec 封装的是父容器传递给子容器的布局要求,而不是父容器对子容器的布局要求,“传递” 两个字很重要,
更精确的说法应该这个MeasureSpec是由父View的MeasureSpec和子View的LayoutParams通过简单的计算得出一个针对子View的测量要求,
这个测量要求就是MeasureSpec。
* MeasureSpec一共有三种模式:
UPSPECIFIED : 父容器对于子容器没有任何限制,子容器想要多大就多大(不确定测量模式)
EXACTLY: 父容器已经为子容器设置了尺寸,子容器应当服从这些边界,不论子容器想要多大的空间。(精确测量模式)
AT_MOST:子容器可以是声明大小内的任意大小(最大测量模式)
我们编码方便的时候,google就要帮我们计算你match_parent的时候是多大,
wrap_content的是多大,这个计算过程,就是计算出来的父View的MeasureSpec不断往子View传递,
结合子View的LayoutParams 一起再算出子View的MeasureSpec,然后继续传给子View,不断计算每个View的MeasureSpec,
子View有了MeasureSpec才能更测量自己和自己的子View。
简单的理解:
1、如果父View的MeasureSpec 是EXACTLY,说明父View的大小是确切的,
(确切的意思很好理解,如果一个View的MeasureSpec 是EXACTLY,那么它的size 是多大,最后展示到屏幕就一定是那么大)。
2、如果父View的MeasureSpec 是AT_MOST,说明父View的大小是不确定,
最大的大小是MeasureSpec 的size值,不能超过这个值。
3、如果父View的MeasureSpec 是UNSPECIFIED(未指定),表示没有任何束缚和约束,
不像AT_MOST表示最大只能多大,不也像EXACTLY表示父View确定的大小,子View可以得到任意想要的大小,不受约束
View的绘制如果你有所了解,
基本分为measure、layout、draw 过程,其中比较难理解就是measure过程。
Measure过程:(绘制过程)
对于View的测量,肯定会和MeasureSpec接触,
这个MeasureSpec 封装的是父容器传递给子容器的布局要求,而不是父容器对子容器的布局要求,“传递” 两个字很重要,
更精确的说法应该这个MeasureSpec是由父View的MeasureSpec和子View的LayoutParams通过简单的计算得出一个针对子View的测量要求,
这个测量要求就是MeasureSpec。
* MeasureSpec一共有三种模式:
UPSPECIFIED : 父容器对于子容器没有任何限制,子容器想要多大就多大(不确定测量模式)
EXACTLY: 父容器已经为子容器设置了尺寸,子容器应当服从这些边界,不论子容器想要多大的空间。(精确测量模式)
AT_MOST:子容器可以是声明大小内的任意大小(最大测量模式)
我们编码方便的时候,google就要帮我们计算你match_parent的时候是多大,
wrap_content的是多大,这个计算过程,就是计算出来的父View的MeasureSpec不断往子View传递,
结合子View的LayoutParams 一起再算出子View的MeasureSpec,然后继续传给子View,不断计算每个View的MeasureSpec,
子View有了MeasureSpec才能更测量自己和自己的子View。
简单的理解:
1、如果父View的MeasureSpec 是EXACTLY,说明父View的大小是确切的,
(确切的意思很好理解,如果一个View的MeasureSpec 是EXACTLY,那么它的size 是多大,最后展示到屏幕就一定是那么大)。
2、如果父View的MeasureSpec 是AT_MOST,说明父View的大小是不确定,
最大的大小是MeasureSpec 的size值,不能超过这个值。
3、如果父View的MeasureSpec 是UNSPECIFIED(未指定),表示没有任何束缚和约束,
不像AT_MOST表示最大只能多大,不也像EXACTLY表示父View确定的大小,子View可以得到任意想要的大小,不受约束
阅读全文
0 0
- view的绘制流程
- View 的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- view的绘制流程
- View的绘制流程
- View 的绘制流程
- View的绘制流程
- View 的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制流程
- 基于LOOK磁盘调度算法写一个电梯运行模拟器
- Oracle工具函数总结
- kaldi问题:queue.pl: error submitting jobs to queue
- linux 安装telnet服务
- mybatis 总结
- View的绘制流程
- Android Binder 机制初步学习 笔记(四,完结)—— Binder 简单应用示例
- Notification 的 Flag 设置
- 【OpenCV入门教程】图像加噪
- 自动生成代码类
- 谷歌的AI码农写出了比真码农还有效的机器学习代码!
- 远程连接mysql
- 我和这对最近融资2.32亿美元的创业夫妻档聊了聊 ...
- 如何基于区块链做数据分析并赚钱? | 硅谷线下活动