2013-09-10 3 views
0

У меня есть две анимации в моей анимации/папке. Один - это один выстрел, а другой - петли.Android AnimationSet с использованием XML-ресурса

Я пытаюсь сыграть в цикл после того, как один выстрел закончен.

Я пробовал использовать AnimationSet, но я делаю это неправильно.

AnimationSet as = new AnimationSet(true); 
Animation AnimFirst = AnimationUtils.loadAnimation(null, R.anim.oneshot); 
Animation AnimSecond = AnimationUtils.loadAnimation(null, R.anim.loop); 
as.addAnimation(AnimFirst); 
as.addAnimation(AnimSecond); 

ImageView image1 = (ImageView) findViewById(R.id.image1); 
image1.startAnimation(as); 

ответ

2

Я бы пойти на AnimationListener запустить второй анимации после того, как первый один закончен. Что-то like.-

Animation animFirst = AnimationUtils.loadAnimation(null, R.anim.oneshot); 
Animation animSecond = AnimationUtils.loadAnimation(null, R.anim.loop); 

final ImageView image1 = (ImageView) findViewById(R.id.image1); 

animFirst.setAnimationListener(new Animation.AnimationListener() { 
    @Override 
    public void onAnimationStart(Animation animation) { 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 
    } 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     image1.startAnimation(animSecond); 
    } 
}); 

image1.startAnimation(animFirst); 

Таким образом, вы на самом деле не нужен AnimationSet, который должен играть набор анимаций одновременно, а не в последовательности.

+0

Есть ли способ заставить это работать внутри кнопки onClick? – cerealspiller

+0

Должно работать, да. Попробуйте инкапсулировать фрагмент кода в новой функции и вызовите его внутри onclick. – ssantos

Смежные вопросы