android获取控件宽高

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/micotale/article/details/80814796

这个没什么好啰嗦了,共三种方法。

方法一 :

//测量方法
int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
view.measure(width,height);
int height=view.getMeasuredHeight(); 
int width=view.getMeasuredWidth();

方法二 :

//增加组件绘制之前的监听
ViewTreeObserver vto =view.getViewTreeObserver(); 
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
   @Override
   public boolean onPreDraw() { 
       vto.removeOnPreDrawListener(this);
       int height =view.getMeasuredHeight(); 
       int width =view.getMeasuredWidth();   
       return true;   
   }
});

方法三 :

//增加整体布局监听
ViewTreeObserver vto = view.getViewTreeObserver();  
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){ 
    @Override 
    public void onGlobalLayout() {     
        int height =view.getHeight(); 
        int width =view.getWidth();
        view.getViewTreeObserver().removeGlobalOnLayoutListener(this);  
    } 
});

猜你喜欢

转载自blog.csdn.net/micotale/article/details/80814796
今日推荐