1. 程式人生 > >Android 在OnCreate()中獲取控制元件高度與寬度

Android 在OnCreate()中獲取控制元件高度與寬度

 試過在OnCreate()中獲取控制元件高度與寬度的童鞋都知道,getWidth()與getHeight()方法返回是0,具體原因 看一下Activity的生命週期 就會明白。

  上程式碼:

方法一:

        int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
       
 int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
        ssidtext.measure(w, h);
       

 int width =ssidtext.getMeasuredWidth();
       
 int height =ssidtext.getMeasuredHeight();

方法二:

        ViewTreeObserver vto = ssidtext.getViewTreeObserver();
        vto.addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
           
 public boolean onPreDraw() {
               
 int height

 = ssidtext.getMeasuredHeight();
               
 int width = ssidtext.getMeasuredWidth();
               
 return true;
            }
        });

具體用哪一種可以根據需求自己選擇。