当我们在oncreate 调用 getwith() 与 getheigh()时返回0 的原因是我们的view 在此时还没有绘制出来,不光在oncreate .Activity生命周期中,onStart,onResume,onCreate都不是真正visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。
我们只要在绑定控件id的位置下执行这个方法就可以了
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//直接移除
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
//现在布局全部完成,可以获取到任何View组件的宽度、高度、左边、右边等信息
view.getMeasuredWidth(), view.getMeasuredHeight()
}
});