Android View的測量
阿新 • • 發佈:2017-05-07
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的測量