Android系统在绘制View前,必须对View进行测量,即告诉系统该画一个多大的View。这个过程在onMeasure()方法中进行。Android系统提供了MeasureSpec类,通过帮助我们测量View。
测量模式可以分为三种:
View类默认的onMeasure()方法只支持EXACTLY模式,所以在自定义控件的时候不重写onMeasure()方法,就只能使用EXACTLY模式。
通过MeasureSpec类,就可以获取到View的测量模式和View想要绘制的大小。有了这些信息,就可以控制View最后显示的大小。
1 @Override2 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)3 {4 super.onMeasure(widthMeasureSpec, heightMeasureSpec);5 }