美文网首页
onMeasure与onSizeChanged获取尺寸区别

onMeasure与onSizeChanged获取尺寸区别

作者: 陈萍儿Candy | 来源:发表于2020-12-16 10:03 被阅读0次

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
    }

相关文章

网友评论

      本文标题:onMeasure与onSizeChanged获取尺寸区别

      本文链接:https://www.haomeiwen.com/subject/eekngktx.html