Android View测量
来源:互联网 发布:光环大数据 视频下载 编辑:程序博客网 时间:2024/05/17 09:24
测量模式
MeasureSpec:测量规格
int 32位:010111100011100
拿前面两位当做mode,后面30位当做值。
1.mode:
1) EXACTLY: 精确的。比如给了一个确定的值 100dp
2) AT_MOST: 根据父容器当前的大小,结合你指定的尺寸参考值来考虑你应该是多大尺寸,需要计算(Match_parent,wrap_content就是属于这种)
3) UNSPECIFIED: 最多的意思。根据当前的情况,结合你制定的尺寸参考值来考虑,在不超过父容器给你限定的只存的前提下,来测量你的一个恰好的内容尺寸。
用的比较少,一般见于ScrollView,ListView(大小不确定,同时大小还是变的。会通过多次测量才能真正决定好宽高。)
2.value:宽高的值。
经过大量测量以后,最终确定了自己的宽高,需要调用:setMeasuredDimension(w,h)
写自定义控件的时候,我们要去获得自己的宽高来进行一些计算,必须先经过measure,才能获得到宽高—不是getWidth(),而是getMeasuredWidth()
也就是当我们重写onMeasure的时候,我们需要在里面调用child.measure()才能获取child的宽高。
阅读全文