Android View的测量

一、简介

  Android系统在绘制View前,必须对View进行测量,即告诉系统该画一个多大的View。这个过程在onMeasure()方法中进行。Android系统提供了MeasureSpec类,通过帮助我们测量View。

  测量模式可以分为三种:

  • EXACTLY:即为精确值模式,系统默认使用的是EXACTLY模式。
  • AT_MOST:即最大值模式,当控件的layout_width属性或layout_height属性指定为wrap_content时,控件大小一般随着控件的子空间或内容的变化而变化,此的控件的尺寸只要不超过父控件允许的最大尺寸即可。
  • UNSPECIFIED:它不指定其大小测量模式,View想多大就多大,通常情况下在绘制自定义View时才会使用。

  View类默认的onMeasure()方法只支持EXACTLY模式,所以在自定义控件的时候不重写onMeasure()方法,就只能使用EXACTLY模式。

  通过MeasureSpec类,就可以获取到View的测量模式和View想要绘制的大小。有了这些信息,就可以控制View最后显示的大小。

二、实例

1 @Override
2 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
3 {
4     super.onMeasure(widthMeasureSpec, heightMeasureSpec);
5 }

 

posted @ 2017-05-07 15:00  naray  阅读(293)  评论(0编辑  收藏  举报