美文网首页
Android 获取View宽高的三种方法

Android 获取View宽高的三种方法

作者: 赵勇Yaphet | 来源:发表于2017-07-13 11:46 被阅读165次

1、

int w = View.MeasureSpec.makeMeasureSpec(0,
                View.MeasureSpec.UNSPECIFIED);
        int h = View.MeasureSpec.makeMeasureSpec(0,
                View.MeasureSpec.UNSPECIFIED);
        imageView.measure(w, h);
        int height = imageView.getMeasuredHeight();
        int width = imageView.getMeasuredWidth();

2、

ViewTreeObserver vto = imageView.getViewTreeObserver(); 
        vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
            public boolean onPreDraw() { 
                vto.removeOnPreDrawListener(this);
                int height = imageView.getMeasuredHeight(); 
                int width = imageView.getMeasuredWidth(); 
                return true; 
            } 
        }); 

3、

ViewTreeObserver vto = imageView.getViewTreeObserver();   
        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
            @Override   
            public void onGlobalLayout() { 
                imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
                imageView.getHeight();
                imageView.getWidth();
            }   
        });   

相关文章

网友评论

      本文标题:Android 获取View宽高的三种方法

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