1、getMeasuredHeight()/getMeasuredWidth() 与 getHeight()/getWidth()
getMeasuredHeight():获取控件实际高度,包括显示的部分和超出屏幕的部分。它的值与屏幕无关。
getHeight():获取控件在屏幕中显示的高度
getMeasuredWidth():与getMeasuredHeight()相似
getWidth():与getHeight()相似。
以下,以View宽为例做讲解。
(1)一般情况下getMeasuredWidth和getWidth方法的值是一致的。
(2)上述解释,针对的是“父布局为非相对布局”的情况。相对布局中,控件的最大值是屏幕大小,不会超过一屏,即使设的值是3000dp,也会自动把大小调为不超过屏幕大小。【下面会有测试】
2、使用
(1) getMeasuredWidth()
setMeasuredDimension()之后,即可调用getMeasuredWidth()。所以网上说在onLayout()环节可以使用是对的。特殊地方:如果我们在重写onMeasure()时,继承了父类方法的onMeasure()——其内部执行了setMeasureDimension(),或者手动setMeasureDimension(),紧接着执行该方法,按道理来讲也是可以获取确切的值。