缩放动画重置位置

时间:2013-10-04 08:40:56

标签: android animation translate-animation scaleanimation

我有三个动画,如缩放,翻译和缩放。我按顺序播放这些动画。前两个工作正常但最后一个缩放动画将视图位置重置为原始。如果我删除最后一个缩放动画,它的工作正常,视图在翻译动画后保持新位置。你对这种行为有什么看法吗?

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);

1 个答案:

答案 0 :(得分:1)

scaleAnimation2.setFillAfter(true); - 如果fillAfter为true,则此动画执行的转换将在完成时保留

scaleAnimation2.setFillBefore(true); - 如果fillBefore为true,则此动画将在动画开始时间之前应用其变换。

这两个属性不能同时工作,后面设置的属性有效。 因此,删除scaleAnimation2.setFillBefore(true);可能会解决您的问题。