1、View的getWidth()和getMeasuredWidth()有什么区别吗?
从 getWidth 和 getHeight 的源码再结合 mLeft、mRight、mTop 和 mBottom 这四个变量的赋值过程来看,getWidth 方法的返回值刚好就是 View 的测量宽度。
在 View 的默认实现中,View 的测量宽/高和最终宽/高是相等的,只不过测量宽/高形成于 View 的 measure 过程,而最终宽/高形成于 View 的 layout 过程,即两者的赋值时机不同,测量宽/高的赋值时机稍微早一些。
2、如何在onCreate中拿到View的宽度和高度?
-
view.post(runnable)
-
ViewTreeObserver
-
手动measure来获取View的宽和高