頁面沒有繪製完成,獲取控件大小

頁面沒有繪製完成,獲取控件大小方法:
ViewTreeObserver //視圖樹的觀察者,模擬繪製
addOnGlobalLayoutListener可以獲取該空間繪製出來的大小等空間相關信息
   ViewTreeObserver vto2 = llImageView.getViewTreeObserver();
   vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
      int srceenW = (getResources().getDisplayMetrics().widthPixels - llImageView 
             .getMeasuredWidth()) / 2; //http://blog.csdn.net/wotoumingzxy/article/details/7760935
     textView.setWidth(srceenW);
//移除當前監聽器
    llImageView.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
    }
   });


 ViewTreeObserver vto3 = llImageView.getViewTreeObserver();
   vto3.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
     int srceenW = btnAction.getMeasuredWidth();
    }
   });
   ViewTreeObserver vto2 = llImageView.getViewTreeObserver();
   vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
     int srceenW = (getResources().getDisplayMetrics().widthPixels - llImageView
             .getMeasuredWidth()) / 2;
     textView.setWidth(srceenW);
     btnAction.getViewTreeObserver().removeGlobalOnLayoutListener(this);
     llImageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
    }
   });
   textView.setTextColor(Color.WHITE);
   textView.setPadding(2, 0, 0, 0);
   return convertView;
匿名方法類的this是指Listener
getApplicationContext()
發佈了23 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章