What is the difference between getMeasuredHeight and getHeight

Cheok Yan Cheng picture Cheok Yan Cheng · Oct 22, 2013 · Viewed 23.1k times · Source

I try to call View.getMeasuredHeight and View.getHeight in onGlobalLayout. Both give me the same result.

I was wondering, under what situation their value will be different? Is there any example to demonstrate this?

I tried searching in google. The 1st result doesn't seem relevant to this question : Android: How to get a custom View's height and width?

Answer

Dan Bechard picture Dan Bechard · Oct 22, 2013

When you use a View, it imposes certain size limitations on its children elements. These limitations may prevent a child element from taking up the amount of space it wants to.

The documentation for the View class describes these properties as follows:

The size of a view is expressed with a width and a height. A view actually possess two pairs of width and height values.

The first pair is known as measured width and measured height. These dimensions define how big a view wants to be within its parent (see Layout for more details.) The measured dimensions can be obtained by calling getMeasuredWidth() and getMeasuredHeight().

The second pair is simply known as width and height, or sometimes drawing width and drawing height. These dimensions define the actual size of the view on screen, at drawing time and after layout. These values may, but do not have to, be different from the measured width and height. The width and height can be obtained by calling getWidth() and getHeight().

See also: http://developer.android.com/guide/topics/ui/how-android-draws.html