页面没有绘制完成,获取控件大小方法:
ViewTreeObserver
//视图树的观察者,模拟绘制
addOnGlobalLayoutListener可以获取该空间绘制出来的大小等空间相关信息
ViewTreeObserver vto2 = llImageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int srceenW = (getResources().getDisplayMetrics().widthPixels - llImageView
.getMeasuredWidth()) / 2; //
http://blog.youkuaiyun.com/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()