0

I have three animations like scale, translate and scale. I play those animations in order. First two is working fine but last scale animation reset the position of view to original. If I remove last scale animation, it's working fine the view stay the new position after translate animation. Do you have any idea about this behavior?

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

1 に答える 1

2

scaleAnimation2.setFillAfter(true);- fillAfter が true の場合、このアニメーションが実行した変換は、終了後も保持されます

scaleAnimation2.setFillBefore(true);- fillBefore が true の場合、このアニメーションはアニメーションの開始時間前に変換を適用します。

この 2 つのプロパティは同時に機能することはできず、後で設定した方が有効です。したがって、削除scaleAnimation2.setFillBefore(true);すると問題が解決する場合があります。

于 2013-10-04T09:21:24.117 に答える