53

我试着打电话View.getMeasuredHeightView.getHeightin onGlobalLayout。两者都给了我相同的结果。

我想知道,在什么情况下它们的值会有所不同?有没有例子可以证明这一点?

我尝试在谷歌搜索。第一个结果似乎与这个问题无关:Android: How to get a custom View's height and width?

4

1 回答 1

81

当您使用视图时,它会对其子元素施加一定的大小限制。这些限制可能会阻止子元素占用它想要的空间量。

View 类的文档对这些属性的描述如下:

视图的大小用宽度和高度表示。一个视图实际上拥有两对宽度和高度值。

第一对称为测量宽度和测量高度。这些尺寸定义了视图在其父视图中的大小(有关详细信息,请参阅布局。)可以通过调用 getMeasuredWidth() 和 getMeasuredHeight() 获得测量尺寸。

第二对简单地称为宽度和高度,或者有时称为绘图宽度和绘图高度。这些尺寸定义了屏幕上、绘图时和布局后视图的实际大小。这些值可能(但不一定)与测量的宽度和高度不同。可以通过调用 getWidth() 和 getHeight() 获得宽度和高度。

另请参阅:http: //developer.android.com/guide/topics/ui/how-android-draws.html

于 2013-10-22T17:18:37.983 回答