我正在为视图设置动画,我想在动画结束后将视图重置为原始位置。
这就是我所拥有的:
rl2是相对布局
rl2.animate().translationX(-60).translationY(117).setDuration(2000);
我尝试设置它,但是不起作用:
rl2.clearAnimation();
答案 0 :(得分:1)
clearAnimation();
不会重置您的动画,只是停止它们并将它们从动画队列中删除。要撤消动画,您实际上需要撤消它们。因此,对于您的代码块,您将需要调用rl2.animate().translationX(0).translationY(0).setDuration(2000);
将视图移回其原始位置。
答案 1 :(得分:1)
@Chris Stillwell 在他的answer中提到过,但是您可以在翻译动画后通过以下方式将View
返回到它的原始位置 >
rl2.animate().translationX(0).translationY(0);
答案 2 :(得分:0)
我知道这个问题是很久以前提出的,但仍然有人会寻找答案。
我将Animation
类用于此类事情;此类中有一个setFillAfter
方法,因此可以设置是否要在动画结束后应用其变换。
Animation anim = new ScaleAnimation(
1f, 1f, // Start and end values for the X axis scaling
1f, 2f, // Start and end values for the Y axis scaling
Animation.RELATIVE_TO_SELF, 0f, // Pivot point of X scaling
Animation.RELATIVE_TO_SELF, 1f); // Pivot point of Y scaling
anim.setFillAfter(false); // no needed to keep the result of the animation
anim.setDuration(1000);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
gangsterImage.startAnimation(anim);