Android View的测量

Posted Naray

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于Android View的测量的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第四百六十六回:实现自定义View中的测量功能)

Android View的测量

android View的测量和绘制

Android View的测量参数

android基础-viewgroup的测量,布局,绘制

Android View 测量流程(Measure)完全解析