2015-07-20 44 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

我想實現一個刪除刷卡功能。 –