measure()和getMeasuredWidth

android的布局分两个阶段,先measure()后requestLayout(), 


测量的三种模式: 
  • UNSPECIFIED: 不限定
  • EXACTLY: 固定
  • AT_MOST:最多

LinearLayout 调用measure(EXACTLY 240,UNSPECIFIED)来得到高度。 
View.measure(widthMeasureSpec,heightMeasureSpec),需要的两个spec是Mode和限定值计算出来的: 
View.MeasureSpec.makeMeasureSpec(maxW,View.MeasureSpec.AT_MOST) 

measure()后调用getMeasuredWidth()和getMeasuredHeight()得到测量后的值。 

此法可用于Tip等窗口大小预估。 

你可能感兴趣的:(measure()和getMeasuredWidth)