1. 程式人生 > >Android View的測量

Android View的測量

idt protected 允許 默認 ted onmeasure and htm 三種

一、簡介

  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的測量