/ / cambia automaticamente l'animazione in Android Studio - Android, animazione

cambia automaticamente l'animazione in Android Studio - Android, animazione

Provo a fare qualcosa di simile quando faccio clic su un pulsante,eseguirà un'animazione e poi cambierà in un'altra animazione una volta terminata la prima animazione. Sto usando la lista animazione per l'animazione.

Sto usando if else per modificare l'animazione ma come implementare un'altra animazione nella prima condizione?

if(i == 0)
{
//if 1st time click the button, it will transform from fattest to fat...
transformAnimation.start();
i++;
}
if(i == 1)
{
iv.setImageResource(R.drawable.transform_2);
transformToSlim = (AnimationDrawable) iv.getDrawable();
transformToSlim.start();
i++;
}
else if(i == 2)
{
iv.setImageResource(R.drawable.transform_3);
transformToSlimmest = (AnimationDrawable) iv.getDrawable();
transformToSlimmest.start();
}
}

risposte:

0 per risposta № 1

Qualcosa del genere dovrebbe funzionare per te:

transformAnimation.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
transformToSlim.start();
}
});
transformToSlim.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
transformToSlimmest.start();
}
});

Questo aggiunge ascoltatori alle tue animazioni che attiveranno l'animazione successiva se quella corrente termina.


0 per risposta № 2

Utilizzare questo codice per iniziare una seconda animazione al termine della prima:

Animation animation1 = ...;
animation1.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}

@Override
public void onAnimationEnd(Animation animation) {

Animation animation2 = ...;
animation2.start();
}

@Override
public void onAnimationRepeat(Animation animation) {}
});
animation1.start();