我有三个动画,如缩放,翻译和缩放。我按顺序播放这些动画。前两个工作正常但最后一个缩放动画将视图位置重置为原始。如果我删除最后一个缩放动画,它的工作正常,视图在翻译动画后保持新位置。你对这种行为有什么看法吗?
AnimationSet animationSet = new AnimationSet(false);
animationSet.setFillAfter(true);
ScaleAnimation scaleAnimation1 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
scaleAnimation1.setDuration(500);
scaleAnimation1.setFillAfter(true);
TranslateAnimation moveAnim = new TranslateAnimation(0, -x, 0, -y);
moveAnim.setDuration(1000);
moveAnim.setStartOffset(500);
moveAnim.setFillAfter(true);
ScaleAnimation scaleAnimation2 = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f);
scaleAnimation2.setDuration(500);
scaleAnimation2.setStartOffset(1000);
scaleAnimation2.setFillAfter(true);
scaleAnimation2.setFillBefore(true);
animationSet.addAnimation(scaleAnimation1);
animationSet.addAnimation(moveAnim);
animationSet.addAnimation(scaleAnimation2);
答案 0 :(得分:1)
scaleAnimation2.setFillAfter(true);
- 如果fillAfter为true,则此动画执行的转换将在完成时保留
scaleAnimation2.setFillBefore(true);
- 如果fillBefore为true,则此动画将在动画开始时间之前应用其变换。
这两个属性不能同时工作,后面设置的属性有效。
因此,删除scaleAnimation2.setFillBefore(true);
可能会解决您的问题。