Android: ¿cómo obtener un alto y ancho de una vista personalizada?

Posible duplicado:
Cómo dimensionar una vista de Android según las dimensiones de sus padres

¿Cómo uso getMeasuredWidth() y getMeasuredHeight ? Siempre devuelve 0. ¿cuál es la diferencia entre this y getHeight() y getWidth() ?

Acabo de obtener una solución para obtener la altura y el ancho de una vista personalizada:

 @Override protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){ super.onSizeChanged(xNew, yNew, xOld, yOld); viewWidth = xNew; viewHeight = yNew; } 

Está trabajando en mi caso.

Lo siento, esta pregunta ya fue hecha. Encontré la respuesta aquí: cómo dimensionar una vista de Android en función de las dimensiones de sus padres

 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension(parentWidth, parentHeight); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 

No intentes meterlos dentro de su constructor. Intente llamarlos en el método onDraw() .

Puede usar el siguiente método para obtener el ancho y alto de la vista, por ejemplo,

 int height = yourView.getLayoutParams().height; int width = yourView.getLayoutParams().width; 

Esto proporciona el valor convertido de la vista que se especificó en el diseño XML.

Digamos que si el valor especificado para la altura es 53dp en XML, obtendrá el valor convertido en entero como 80.

También me perdí en getMeasuredWidth() y getMeasuredHeight() getHeight() y getWidth() durante mucho tiempo ………. luego encontré que el método onSizeChanged() era REALMENTE útil.

Nueva publicación de blog: cómo obtener las dimensiones de ancho y alto de una vista personalizada (extiende la vista) en Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html

La diferencia entre getHeight() y getMeasuredHeight() es que el primer método devolverá la altura real de la View , el segundo devolverá la altura del resumen de los elementos secundarios de View . En palabras más getHeight() , getHeight() devuelve la altura de la vista, getMeasuredHeight() devuelve la altura que esta vista necesita para mostrar todos sus elementos

Bueno, getheight obtiene la altura, y getwidth obtiene el ancho. Pero estás llamando esos métodos demasiado pronto. Si los está llamando oncreate o onresume, la vista aún no está dibujada. Tienes que llamarlo después de que se haya dibujado la vista.