我有两个不同持续时间的动画,如下所示:
动画 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);
如您所见,这些动画具有不同的持续时间。我想在一次 Anim1(持续时间 5000)动画中从 Y:0 到 500 循环 25 次动画 Anim2(持续时间 200)。
我尝试过使用 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)动画(整个水平动画不仅是imageview)。
我希望这个描述会更清楚。
当我在一个 AnimationSet 中添加这两个动画时,第一个动画根本不起作用,并且 imageview(不是动画)被线性转换为 -200,500。