Я пытаюсь применить анимацию к представлению в моем приложении для Android после создания моего действия. Для этого мне нужно определить текущий размер представления, а затем настроить анимацию для масштабирования от текущего размера до нового. Эта часть должна выполняться во время выполнения, так как вид масштабируется до разных размеров в зависимости от ввода от пользователя. Мой макет определен в XML.
Это кажется легкой задачей, и по этому поводу есть много ТАК вопросов, хотя, очевидно, ни один из них не решил мою проблему. Так что, возможно, я упускаю что-то очевидное. Я понимаю свое мнение следующим образом:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Это работает отлично, но при вызове getWidth()
, getHeight()
, getMeasuredWidth()
, getLayoutParams().width
и т.д., они все возвращаются 0. Я также попытался вручную вызова measure()
на представлении с последующим вызовом getMeasuredWidth()
, но это не имеет никакого эффекта.
Я пробовал вызывать эти методы и проверять объект в отладчике в своей деятельности onCreate()
и в onPostCreate()
. Как я могу определить точные размеры этого представления во время выполнения?
match_parent
). В этом случае более простым решением, которое можно безопасно вызвать даже до отрисовки View (например, из метода onCreate () вашего Activity), является использование Display.getSize (); подробнее см. stackoverflow.com/a/30929599/5025060 . Я знаю, что @NikReiman просил не об этом, просто оставил записку для тех, кто может использовать этот более простой метод.