2013-07-04 5 views
0

Я пытаюсь вернуть ширину и высоту моего ImageView, но продолжать возвращаться 0. Я вызываю ImageView.getWidth() и ImageView.getHeight() в OnCreate(), и я считаю, что ImageView не было достаточно времени для инициализации, таким образом, ошибка я получаю:Получить ширину и высоту ImageView

java.lang.IllegalArgumentException: ширина и высота должна быть> 0

Мой вопрос: Где находится хорошее место для получения ширины и высоты моего ImageView, поэтому я знаю, что у него достаточно времени для правильной инициализации?

Примечание: Я пробовал onWindowFocusChanged(), но получал ту же проблему.

Cheers!

+1

возможно дубликат [андроида ширина высота прибудете в ImageView] (http://stackoverflow.com/questions/4680499/android-get-height-width-of-imageview) –

+0

Привет - ответ здесь: [ андроид-GET-ширина-возвращает-0] (http://stackoverflow.com/questions/3591784/android-get-width-returns-0). Один из вариантов: «вы можете использовать ресурс измерения для определения размера кнопки, а затем ссылаться на этот ресурс измерения из вашего файла макета» – paulsm4

ответ

3

Цитата «Hello Android (третье издание)» 81:

Распространенной ошибкой новых разработчиков Android, чтобы использовать ширину и высоту зрения внутри его конструктора. Когда вызывается конструктор вида, Android еще не знает, насколько большой будет просмотр, поэтому размеры устанавливаются на ноль. Реальные размеры рассчитываются на этапе компоновки, который возникает после строительства, но прежде чем что-либо нарисовано. Вы можете использовать метод onSizeChanged() для уведомления о значениях, когда они известны, или позже вы можете использовать методы getWidth() и getHeight(), например, в методе onDraw().

Смежные вопросы