如何在 android 中平滑地拖动视图

How to drag a view smoothly in android

我希望能够平滑地水平拖动视图。我使用下面的代码

public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
        {
           \setup before dragging
        }
        break;
        case MotionEvent.ACTION_MOVE:
        {
             v.setX((dx += speedFactor));
        }
        break;
        case MotionEvent.ACTION_UP:
        {
            \setup after dragging
        }
        return true;
    }
    return true;
}

当我使用较小的 speedFactore < 10 时,动画很流畅,但视图移动非常缓慢。当我增加它时,它不会像我希望的那样平滑移动。

如何拖的很顺滑,又快一点?

通常情况下,您没有常量"speedFactor",因为拖动意味着您希望视图在您的手指下,因此它的移动速度与您的手指一样快。

您在开始时存储初始触摸位置(ACTION_DOWN),并在ACTION_MOVE-events期间根据当前位置和初始位置的差异更改视图的位置。

移动的流畅程度取决于设备的计算能力等因素。