Android: Как получить пользовательский вид высоты и ширины?

Возможный дубликат:
Как настроить представление Android на основе размеров родителя

Как использовать getMeasuredWidth() и getMeasuredHeight ? Он всегда возвращает 0. что такое различие между этим и getHeight() и getWidth() ?

К сожалению, этот вопрос уже задан. Я нашел ответ здесь – Как определить размер Android-представления на основе его размеров родителя

 @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); } 

Просто получил решение, чтобы получить высоту и ширину пользовательского представления:

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

Его работа в моем случае.

Не пытайтесь получить их внутри своего конструктора. Попробуйте onDraw() их в onDraw() .

Вы можете использовать следующий метод для получения ширины и высоты представления. Например,

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

Это дает преобразованное значение представления, указанное в макете XML.

Скажем, если указанное значение высоты составляет 53dp в XML, вы получите преобразованное значение в целых числах как 80.

Я также был потерян вокруг getMeasuredWidth() и getMeasuredHeight() getHeight() и getWidth() в течение длительного времени ………. позже я нашел onSizeChanged() чтобы быть ДЕЙСТВИТЕЛЬНО полезным.

Новое сообщение в блоге: как получить размеры ширины и высоты пользовательского вида (extends View) в Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html

Разница между getHeight() и getMeasuredHeight() заключается в том, что первый метод вернет фактическую высоту представления, вторая возвращает итоговую высоту детей View . В словах getHeight() возвращает высоту представления, getMeasuredHeight() возвращает высоту, которая должна отображаться всем этим элементам

Хорошо getheight получает высоту, а ширина равна ширине. Но вы слишком быстро называете эти методы. Если вы вызываете их в oncreate или onresume, представление еще не нарисовано. Вы должны вызвать его после того, как будет отображено представление.