在最近項目中,想要獲取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中通過返回值獲取。