Я пытаюсь применить анимацию к представлению в моем приложении для 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 просил не об этом, просто оставил записку для тех, кто может использовать этот более простой метод.