标签:
Measure的本质是:把试图布局时的相对值转化为具体值。
MeasureSpec类包装了从parent传递下来的布局要求,每一个MeasureSpec代表了对宽度和高度的一个要求。
View.getWidth(), View.getHight()
View.getMeasureWidth(), View.getMeasureHiegh()
一个未添加到视图中的? 但是有时getMesureHeight 依然是返回0。为什么?ec是一个android.view.View的内部类,封装了从父类传送到子类的布局要求信息。
ViewGroup提供的measure方法
有一个约定:在覆写onMeasure方法的时候,必须调用 setMeasuredDimension(int,int)来存储这个View经过测量得到的measured width and height。如果没有这样做。将会由measure(int, int)方法抛出一个IllegalStateException。
measure(int widthMeasureSpec, int heightMeasureSpec),由于图片都是正方形,所以宽和高的值是一样的。
覆写onMeasure方法的时候,子类有责任确保measured height width至少为这个View的最小height和width。
setMeasuredDimension(resWidth, resHeight);
根据设置的图的尺寸,获取此控件的最小可用值(如果设置了android:minwidth)
如果没有背景图,那么取默认的尺寸,默认其实就是屏幕宽和高中的小值
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4855917.html