Android: Как получить высоту и ширину пользовательского представления? [дубликат]




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






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

377   7  

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

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

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

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

    Ничего не найдено.