/ / автоматично змінювати анімацію в андроїд-студії - android, анімація

змінити анімацію автоматично в Android Studio - андроїд, анімація

Я намагаюся зробити щось на зразок, коли натискаю кнопку,вона запустить анімацію, а потім вона зміниться на іншу анімацію, коли перша анімація закінчиться. Я використовую список анімації для анімації.

Я використовую, якщо інше, щоб змінити анімацію, але як реалізувати іншу анімацію в першій умові?

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();
}
}

Відповіді:

0 для відповіді № 1

Щось з цього приводу має працювати для вас:

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();
}
});

Це додасть слухачів до вашої анімації, яка запустить наступну анімацію, якщо поточна закінчиться.


0 для відповіді № 2

Використовуйте цей код, щоб запустити другу анімацію, коли перша закінчується:

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();