Android: Как получить высоту и ширину пользовательского представления? [дубликат]
Возможные Дубликаты:
как определить размер представления Android на основе размеров его родителя
как использовать getMeasuredWidth() и getMeasuredHeight? Она всегда возвращает 0. какая разница между этим и getHeight() и getWidth()?
7 ответов:
только что получил решение, чтобы получить высоту и ширину пользовательский вид:
@Override protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){ super.onSizeChanged(xNew, yNew, xOld, yOld); viewWidth = xNew; viewHeight = yNew; }его работает в моем случае.
к сожалению, этот вопрос уже был задан. Я нашел ответ здесь - Как определить размер представления 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); }
вы можете использовать следующий метод, чтобы получить ширину и высоту посмотреть, Например,
int height = yourView.getLayoutParams().height; int width = yourView.getLayoutParams().width;это дает преобразованное значение представления, которое указано в XML-макете.
скажем, если указанное значение для height равно 53dp в XML, вы получите преобразованное значение в целое число как 80.
я тоже потерялся вокруг
getMeasuredWidth()иgetMeasuredHeight()getHeight()иgetWidth()в течение длительного времени.......... позже я нашелonSizeChanged()метод, чтобы быть действительно полезным.новое сообщение в блоге: Как получить размеры ширины и высоты customView (extends View) в Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html
разницу между
getHeight()иgetMeasuredHeight()это первый метод будет возвращать фактическую высотуView, второй вернет суммарную высотуViewС детьми. Другими словами,getHeight()возвращает высоту точки зрения,getMeasuredHeight()возвращает высоту, которую этот вид должен показать все его элементы
Ну getheight получает высоту, а getwidth получает ширину. Но вы называете эти методы слишком рано. Если вы вызываете их в oncreate или onresume, представление еще не нарисовано. Вы должны вызвать его после того, как вид был нарисован.
Comments