Возможный дубликат:
Как определить размер Android на основе размеров его родителей
как использовать getMeasuredWidth()
и getMeasuredHeight
? Он всегда возвращает 0. что такое различие между этим и getHeight()
и getWidth()
?
Возможный дубликат:
Как определить размер 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()
.
Вы можете использовать следующий метод для получения ширины и высоты представления, Например,
int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;
Это дает преобразованное значение представления, указанное в макете XML.
Скажем, если указанное значение высоты составляет 53dp в XML, вы получите преобразованное значение в integer как 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
, вторая возвращает итоговую высоту View
. В словах oter, getHeight()
возвращает высоту представления, getMeasuredHeight()
возвращает высоту, которая должна отображаться всем этим элементам.
Хорошо getheight получает высоту, а ширина getwidth. Но вы слишком быстро называете эти методы. Если вы вызываете их в oncreate или onresume, представление еще не нарисовано. Вы должны вызвать его после того, как изображение было нарисовано.