У меня есть две анимации с разной продолжительностью, как показано ниже:
Аним 1:
TranslateAnimation trans1 = new TranslateAnimation(0, 0, 0, 500);
trans1.setStartOffset(0);
trans1.setDuration(5000);
trans1.setFillAfter(true);
Аним 2:
TranslateAnimation trans2 = new TranslateAnimation(0, -100, -200, -200);
trans2.setDuration(200);
trans2.setRepeatCount(25);
trans2.setFillAfter(true);
Как видите, у этих анимаций разная продолжительность. Я хотел бы анимировать Anim2 (продолжительность 200) в цикле 25 раз за один раз Анимация Anim1 (продолжительность 5000) от Y: 0 до 500.
Я пробовал использовать AnimationSet и addAnimation, но не хочет работать. Не могли бы вы дать мне несколько советов, как я могу решить эту проблему?
Мой код:
AnimationSet rootSet = new AnimationSet(true);
rootSet.setInterpolator(new AccelerateInterpolator());
rootSet.setRepeatMode(Animation.INFINITE);
rootSet.setRepeatCount(200);
rootSet.setDuration(5000);
rootSet.setFillAfter(true);
TranslateAnimation trans1 = new TranslateAnimation(0, 0, 0, 500);
trans1.setStartOffset(0);
trans1.setDuration(5000);
trans1.setFillAfter(true);
rootSet.addAnimation(trans1);
AnimationSet rootSet2 = new AnimationSet(true);
rootSet2.setInterpolator(new AccelerateInterpolator());
rootSet2.setRepeatMode(Animation.INFINITE);
rootSet2.setRepeatCount(200);
rootSet2.setDuration(200);
TranslateAnimation trans2 = new TranslateAnimation(0, -100, -200, -200);
trans2.setDuration(200);
trans2.setRepeatCount(25);
trans2.setFillAfter(true);
rootSet2.addAnimation(trans2);
rootSet.addAnimation(rootSet2);
iv.startAnimation(rootSet);
РЕДАКТИРОВАТЬ:
Когда я проигрываю только анимацию trans2, она повторяется 25 раз, как я хотел (по горизонтали). И, кроме того, я бы хотел, чтобы эта анимация анимировалась (вся горизонтальная анимация, а не только изображение) вертикально (trans1).
Надеюсь, что это описание будет более понятным.
Когда я добавил эти две анимации в один AnimationSet, первая анимация вообще не работает, а изображение (не анимация) переводится линейно в -200,500.