1.获取的尺寸单位均为px
2.先走onMeasure方法,当控件的大小发生改变时,走onSizeChanged方法,此时在onSizeCanged方法中调用getHeight(),getMeasuredWidth()等相关的方法返回的都是控件自己真实的大小。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
Log.i("cyp", "onMeasure: ");
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
Log.i("cyp", "onMeasure: width;"+width+",height;"+height);
int getw = getWidth();// 刚开始一直为0,知道size发生改变走onsizechanged方法
int geth = getHeight();
setMeasuredDimension(400,300);
}
4.size发生改变时走onSizechanged方法
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
Log.i("cyp", "onSizeChanged: w:"+w+",h:"+h+",oldw:+"+oldw+",oldh:"+oldh);
Log.i("cyp","height:"+getHeight()+",wh:"+getWidth()+",mew:"+getMeasuredWidth());
//w = width = measuredWidth
//h = height = measuredHeight
}
网友评论