Propiedades de Android que se pueden animar con ObjectAnimator


Estoy empezando a jugar con las Animaciones de propiedad sobre las animaciones de vista, ya que tengo una vista que necesita escalar y empujar a otros fuera del camino como lo hace. He visto algunos ejemplos, pero me pregunto si hay algún lugar que proporcione una lista de las propiedades que se pueden alterar usando estas clases. Por ejemplo, vi un tutorial que hizo una rotación rápida usando:

ObjectAnimator.ofFloat(aniView, "rotation", 360)

Que es bastante genial, pero no habría sabido la propiedad de rotación si no fuera por ese tutorial exacto, es ¿existe una lista completa de lo que se puede hacer? La propiedad particular que quiero animar es el peso de una vista dentro de un LinearLayout, si alguien tiene algún consejo sobre eso específicamente.

Author: Jonik, 2012-07-24

3 answers

Mejor tarde que nunca, así que aquí está la lista completa de las propiedades que se pueden animar con ObjectAnimator.

Http://developer.android.com/guide/topics/graphics/prop-animation.html#views

 53
Author: Onyx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-08 23:29:11

Los documentos implican que cualquier valor se puede usar con ObjectAnimator siempre que siga una convención de nomenclatura:

  1. La propiedad objeto que está animando debe tener una función setter (en el caso camel) en forma de set<propertyName>(). Porque el ObjectAnimator actualiza automáticamente la propiedad durante animación, debe ser capaz de acceder a la propiedad con este setter método. Por ejemplo, si el nombre de la propiedad es foo, debe tener un setFoo() método. Si este setter el método no existe, tienes tres opcion:
    • Agregue el método setter a la clase si tiene los derechos para haciéndolo.
    • Use una clase wrapper que tiene derechos para cambiar y tener ese wrapper recibe el valor con un método setter válido y reenvía al objeto original.
    • Use ValueAlimator en su lugar.
  2. [...]

Con respecto a su pregunta, View tiene el método setRotation(float) -- eso te da una pista de que se puede usar. En particular, aquí es cómo lo haría con un particular TimeInterpolator:

ObjectAnimator anim = ObjectAnimator.ofFloat(myView, "rotation", 0f, 90f);
anim.setDuration(2000);                  // Duration in milliseconds
anim.setInterpolator(timeInterpolator);  // E.g. Linear, Accelerate, Decelerate
anim.start()                             // Begin the animation

Puede leer los documentos para obtener más detalles sobre las expectativas de ObjectAnimator.

 23
Author: bcorso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-04 16:16:37

Aquí está la lista completa de nombres de propiedades que está buscando:

  • rotación
  • rotationX
  • Rotación
  • Traducciónx
  • Traducción
  • scaleX
  • scaleY
  • PivotX
  • pivotY
  • alfa
  • x
  • y

Fuente: Documentos

 9
Author: Sagar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-19 09:06:15