`
kingbinchow
  • 浏览: 122831 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

onMeasure()--典型视图度量时间

阅读更多
@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		measuredHeight = measureHeight(heightMeasureSpec);
		measuredWidth = measureWidth(widthMeasureSpec);
		setMeasuredDimension(measuredWidth, measuredHeight);
	}

	private int measureWidth(int widthMeasureSpec) {
		int specMode = MeasureSpec.getMode(widthMeasureSpec);
		int specSize = MeasureSpec.getSize(widthMeasureSpec);
		
		//如果不指定限制,就是默认大小
		int result = 50;
		if(specMode == MeasureSpec.AT_MOST){
			//如果父组件被控件填充,则返回外边界大小
			result = specSize;
		}else if(specMode == MeasureSpec.EXACTLY){
			//如果指定空间大小,返回控件实际大小
			result = specSize;
		}
		return result;
	}

	private int measureHeight(int heightMeasureSpec) {
		// TODO Auto-generated method stub
		int specMode = MeasureSpec.getMode(heightMeasureSpec);
		int specSize = MeasureSpec.getSize(heightMeasureSpec);
		
		//如果不指定限制,就是默认大小
		int result = 50;
		if(specMode == MeasureSpec.AT_MOST){
			//如果父组件被控件填充,则返回外边界大小
			result = specSize;
		}else if(specMode == MeasureSpec.EXACTLY){
			//如果指定空间大小,返回控件实际大小
			result = specSize;
		}
		return result;
	}
	
	
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics