2015-07-20 96 views
0

我希望能够以平滑的方式水平拖动视图。我用下面的代码如何在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动画流畅,但鉴于移动速度非常缓慢。当我增加它时,它不会像我希望的那样顺畅。

如何拖动非常平滑和快一点?

+0

[Android Draggable视图](http://www.singhajit.com/android-draggable-view/) –

回答

1

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

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

运动的平滑程度取决于设备的计算能力等因素。

+0

我不想让视图跟在我的手指上,因为视图水平填充屏幕。我自己的问题是尽可能平滑拖动看起来很顺利。 –

+1

如果视图水平填充屏幕,那么什么是移动? – mkoe

+0

我想实现一个删除刷卡功能。 –