Android – AnimatorSet, animador de objetos – cadena de animación de rebote está amalgamando?

Tengo una pregunta sobre ObjectAnimator en Android. Estoy tratando de modelar un efecto Bounce por el cual la Vista se desliza hacia arriba (decreciente valor Y) y retrocede después por la misma cantidad 'n', seguido por la Vista deslizándose hacia arriba y hacia abajo de nuevo, pero esta vez por 'n / 2' Mitad de la distancia).

Por lo tanto, un rebote más grande, seguido por un rebote más superficial – es decir, la cosa que un icono de Mac hace en la bandeja cuando quiere su atención.

Esto es lo que he probado hasta ahora (asuma que v es una View ):

 float y = v.getTranslationY(),distance = 20F; AnimatorSet s = new AnimatorSet(); s.play(ObjectAnimator.ofFloat(v, "translationY", y- distance).setDuration(500)) .before(ObjectAnimator.ofFloat(v, "translationY", y).setDuration(500)) .before(ObjectAnimator.ofFloat(v, "translationY", y- (distance/2)).setDuration(500)) .before(ObjectAnimator.ofFloat(v, "translationY", y).setDuration(500)); s.start(); 

Ignorar la calidad del código, es un POC! Esperaba que esto funcionara, pero parece que sólo 'rebotar' una vez como si su combinado las animaciones a pesar del uso de .before() .

¿Podría mostrarme cómo puedo crear cadenas complejas de AnimatorSet que no se unen a una, ya que parece que me falta algo?

BONUS: Para obtener más puntos, ¿cómo puedo configurar la repetición de un AnimatorSet?

¡Muchas gracias!

Aceptar así que finalmente encontró una manera bastante ordenada para lograr la animación secuencial haciendo caso omiso del constructor fluido, y sólo con el método playSequentially() tal que:

 AnimatorSet as = new AnimatorSet(); as.playSequentially(ObjectAnimator.ofFloat(...), // anim 1 ObjectAnimator.ofFloat(...), // anim 2 ObjectAnimator.ofFloat(...), // anim 3 ObjectAnimator.ofFloat(...)); // anim 4 as.setDuration(600); as.start(); 

Aún no han funcionado repetir, sin embargo, que no sea un hack sucio que implica la devolución de llamada onAnimationEnd en un oyente. Debe ser una manera más simple, así que tal vez alguien puede editar esto cuando saben de uno.

De todos modos, espero que lo anterior ayuda a alguien.

Cuando utiliza el Generador, todas las dependencias que regresan se refieren al primer Animador, por lo que tuvo 3 rebotes que suceden simultáneamente después del primer movimiento. Desafortunadamente, parece que AnimatorSet está roto en algunos aspectos, uno de ellos se repite: https://code.google.com/p/android/issues/detail?id=17662

  • Android ViewFlipper + animación de pantalla de inicio
  • Cómo implementar una animación creciente de 0 a 600 en 5 segundos en TextVIew en android
  • La animación de Android deja líneas durante el movimiento
  • Cómo escalar un botón de derecha a izquierda, animación de Android
  • Android: expandir / contraer la animación
  • Ejemplo simple de animación de interpolación
  • Android: animación de tween de un mapa de bits
  • ¿Cómo realizar una animación de desvanecimiento en la transición de la actividad?
  • Animador de Valor android
  • Animación personalizada en Android
  • Animar un cuadro de diálogo personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.