icon - Propiedades de Android que se pueden animar con ObjectAnimator
flip animation android studio (3)
Estoy empezando a jugar con las animaciones de propiedades en las animaciones de la 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 pueden modificarse con estas clases. Por ejemplo, vi un tutorial que hizo una rotación rápida usando:
ObjectAnimator.ofFloat(aniView, "rotation", 360)
Lo cual es genial, pero no hubiera sabido la propiedad de rotación si no fuera por ese tutorial exacto, ¿hay alguna lista exhaustiva de lo que se puede hacer? La propiedad particular que quiero animar es el peso de una vista dentro de LinearLayout, si alguien tiene algún consejo sobre eso específicamente.
Aquí está la lista completa de nombres de propiedades que está buscando:
- rotación
- rotationX
- rotaciónY
- traducciónX
- traducciónY
- scaleX
- scaleY
- pivotX
- pivotY
- alfa
- X
- y
Fuente: Docs
Los Docs implican que cualquier valor se puede usar con ObjectAnimator
siempre que sigas una convención de nomenclatura:
- La propiedad del objeto que está animando debe tener una función setter (en camel case) en forma de
set<propertyName>()
. Debido a que ObjectAnimator actualiza automáticamente la propiedad durante la animación, debe poder acceder a la propiedad con este método setter. Por ejemplo, si el nombre de la propiedad esfoo
, debe tener un métodosetFoo()
. Si este método setter no existe, tiene tres opciones:
- Agregue el método setter a la clase si tiene los derechos para hacerlo.
- Utilice una clase contenedora que tenga derechos para cambiar y haga que ese envoltorio reciba el valor con un método setter válido y lo reenvíe al objeto original.
- Use ValueAnimator en su lugar.
- [...]
Con respecto a su pregunta, View
tiene el método setRotation(float)
- que le da una pista de que se puede usar. En particular, así es cómo lo haría con un TimeInterpolator
particular:
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
.
Más vale 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