Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between getMeasuredHeight and getHeight

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?

like image 945
Cheok Yan Cheng Avatar asked Oct 22 '13 17:10

Cheok Yan Cheng


1 Answers

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

like image 63
Dan Bechard Avatar answered Sep 21 '22 12:09

Dan Bechard