页面没有绘制完成,获取控件大小

来源:互联网 发布:网络主播怎么注册 编辑:程序博客网 时间:2024/06/05 00:23
页面没有绘制完成,获取控件大小方法:
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()
0 0
原创粉丝点击