Я намагаюся зробити щось на зразок, коли натискаю кнопку,вона запустить анімацію, а потім вона зміниться на іншу анімацію, коли перша анімація закінчиться. Я використовую список анімації для анімації.
Я використовую, якщо інше, щоб змінити анімацію, але як реалізувати іншу анімацію в першій умові?
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();