如何在动画期间单击时将图像按钮停止在当前位置?

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

应该可以解决您的问题。