Estoy tratando de aplicar una animación a una vista en mi aplicación de Android después de crear mi actividad. Para hacer esto, necesito determinar el tamaño actual de la vista y luego configurar una animación para escalar del tamaño actual al nuevo tamaño. Esta parte debe hacerse en tiempo de ejecución, ya que la vista se escala a diferentes tamaños según la entrada del usuario. Mi diseño está definido en XML.
Esto parece una tarea fácil, y hay muchas preguntas SO al respecto, aunque ninguna resolvió mi problema, obviamente. Entonces quizás me estoy perdiendo algo obvio. Tengo una idea de mi punto de vista al:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Esto funciona bien, pero cuando se llama getWidth()
, getHeight()
, getMeasuredWidth()
, getLayoutParams().width
, etc, todos ellos de retorno 0. He intentado también manualmente llamando measure()
a la vista seguido por una llamada a getMeasuredWidth()
, pero que no tiene ningún efecto.
He intentado llamar a estos métodos e inspeccionar el objeto en el depurador en mi actividad onCreate()
y en onPostCreate()
. ¿Cómo puedo calcular las dimensiones exactas de esta vista en tiempo de ejecución?
match_parent
). En este caso, una solución más simple que se puede llamar de forma segura incluso antes de que se dibuje la Vista (por ejemplo, desde el método onCreate () de su Actividad) es usar Display.getSize (); consulte stackoverflow.com/a/30929599/5025060 para más detalles. Sé que esto no es lo que pidió @NikReiman, solo dejo una nota para aquellos que puedan usar este método más simple.