[Android]在onCreate方法中中获取View的宽和高

来源:互联网 发布:mac 截图 快捷键 编辑:程序博客网 时间:2024/06/10 07:37

项目开发中总会遇到一种情况,就是在ocreate方法或者在View未绘制之前要获取View的宽和高用于计算,这时候使用view的getwidth方法或者getMeasuredWidth,基本得到0。此时就需要用到下面的方法来获取view的宽高了:

方法一:

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

方法二:

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


之后,就可以开开心心的写代码了。



0 0
原创粉丝点击