如何在动画期间单击时将图像按钮停止在当前位置?
How to stop imagebutton at current position when clicked during animation?
我有一个从屏幕顶部向下移动的 ImageButton。图像在向下移动到屏幕时进行动画处理。我想让它停止无论何时何地被点击。基本上,如果在动画中间单击图像,我希望它停在当前位置。我的进度可以在下面的代码块中看到,代码使图像动画并从上到下移动,当单击图像时,图像直接移动到所需位置(500),而不是停在当前位置。因为我是编程初学者,所以请真正描述。谢谢你。
final ImageButton image = (ImageButton)findViewById(R.id.image);
final ObjectAnimator objectAnimator= ObjectAnimator.ofFloat(image, View.TRANSLATION_Y, 0, 500); //where the image should move to
objectAnimator.setStartDelay(2000); //how long to wait before starting
objectAnimator.setDuration(2000); //how long animation lasts
objectAnimator.start();
image.setOnClickListener(
new ImageButton.OnClickListener() {
public void onClick(View v) {
image.setTranslationY(image.getY()); //gets current position of Y?
objectAnimator.end(); //ends the animation
}
}
);
从 ValueAnimator#cancel 的文档看来
objectAnimator.cancel();
应该可以解决您的问题。
我有一个从屏幕顶部向下移动的 ImageButton。图像在向下移动到屏幕时进行动画处理。我想让它停止无论何时何地被点击。基本上,如果在动画中间单击图像,我希望它停在当前位置。我的进度可以在下面的代码块中看到,代码使图像动画并从上到下移动,当单击图像时,图像直接移动到所需位置(500),而不是停在当前位置。因为我是编程初学者,所以请真正描述。谢谢你。
final ImageButton image = (ImageButton)findViewById(R.id.image);
final ObjectAnimator objectAnimator= ObjectAnimator.ofFloat(image, View.TRANSLATION_Y, 0, 500); //where the image should move to
objectAnimator.setStartDelay(2000); //how long to wait before starting
objectAnimator.setDuration(2000); //how long animation lasts
objectAnimator.start();
image.setOnClickListener(
new ImageButton.OnClickListener() {
public void onClick(View v) {
image.setTranslationY(image.getY()); //gets current position of Y?
objectAnimator.end(); //ends the animation
}
}
);
从 ValueAnimator#cancel 的文档看来
objectAnimator.cancel();
应该可以解决您的问题。