在最近项目中,想要获取view控件的大小,通过view.getHeight和view.getWidth,怎么获取都是null。
如何在绘制组件之前能获取到该组件的尺寸大小呢?
一、
/**
* 获取的控件的高宽
* @param view
*/
ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
view.getHeight();
view.getWidth();
}
});
二、
/** * 获取控件的高
* @param view
* @return
*/
public static int getViewHeight(View view){ view.measure(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
view.getMeasuredHeight();//高度
view.getMeasuredWidth();//宽度
return view.getMeasuredHeight();}
此方法可在activity中通过返回值获取。