Sto tentando di "concatenare" due animazioni insieme, quindi quando si completa, inizia l'altra. Funziona tranne un problema. Al termine della prima animazione, torna alla sua posizione originale. Sto impostando il riempimento dopo il vero. Cos'altro mi manca?Animazioni catena Android
Ecco il codice che sto usando. Nota, questo è in una classe che sta estendendo LinearLayout.
// FIRST ANIMATION
mAnimation = new TranslateAnimation(0, PANEL_END_X, 0, 0);
mAnimation.setDuration(PANEL_TRANSITION_TIME);
mAnimation.setFillAfter(true);
mAnimation.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationEnd(Animation animation) {
// FIRST ANIMATION COMPLETE, CALL THE SECOND ANIMATION
startAnimation(mAlphaAnimation);
}
});
// SECOND ANIMATION
mAlphaAnimation = new AlphaAnimation(1.0f, 0.0f);
mAlphaAnimation.setDuration(PANEL_ALPHA_TRANSITION_TIME);
mAlphaAnimation.setFillAfter(true);
Soluzione:
L'unico modo ho potuto ottenere questo lavoro per la mia soddisfazione è stato quello di utilizzare un AnimationSet
, ma impostare l'offset iniziale della seconda animazione offset iniziale + durata della prima animazione, più un po 'di imbottitura. Non dovevano essere completamente esatti nel mio caso.
Ho provato a giocare con vari valori come suggerito da CommonsWare, ma otterrei sempre un tipo di effetto "snapping" in cui i valori tornerebbero al loro valore originale prima di prendere quello nuovo.
consecutivi. AnimationSet.Builder è risultato essere quello che cercavo: http://developer.android.com/reference/android/animation/AnimatorSet.Builder.html. – Steve