Android View measure的最终结果是把layout_width和layout_height所设置的相对值转换为具体值的过程。MeasureSpec的种类分为MeasureSpec.EXACTLY(确定的)、MeasureSpec.AT_MOST(最多)、MeasureSpec.UNSPECIFIED(没有限制)。对于一个View来说它的宽和高各有属于自己的specMode,至于其具体作用后面会有说说明,先来说说这三个变量的作用:
1、MeasureSpec.EXACTLY:”确定的“,意思是parentView希望childView的大小是确定的,为specSize.
2、MeasureSpec.AT_MOST:“最多”,意思是childView的大小最多是specSize指定的值。
3、MeasureSpec.UNSPECIFIED:“没有限制”,此时View的设计者可以根据自身的特性设置视图的大小。
measureSpec的参数是由parentView传递给childView的,目的是告诉childView 可以提供的实际尺寸。MeasureSpec提供了三个方法
1)makeMeasureSpec(int size,int mode):size参数由程序员自己设定,mode必须是specMode的三个值中的一个