2017-07-21 12 views
2

私はユーザーが指定された方向に画面上で指を動かすときに、呼び出し方法としてGestureDetector.OnGestureListenerを使用します。 私の問題 - ちょっと動かしてメソッドが呼び出されたら、ユーザーは画面上で指を少し動かしてほしいです。画面上での指のスワイプの感度

public class SwipeListener extends GestureDetector.SimpleOnGestureListener { 
    public static final int MIN_SWIPE_DISTANCE = 40; 


    @Override 
    public boolean onDown(MotionEvent e) { 
     return true; 
    } 


    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     float xDiff = e1.getX() - e2.getX(); 
     float yDiff = e1.getY() - e2.getY(); 
     return resolveSwipe(xDiff, yDiff); 
    } 


    private boolean resolveSwipe(float xDist, float yDist) { 
     float yDistAbs = Math.abs(yDist); 
     float xDistAbs = Math.abs(xDist); 

     SwipeDirection swipeDirection; 


     if (yDistAbs > xDistAbs) { 
      if (yDistAbs < MIN_SWIPE_DISTANCE) {return false;} 
      swipeDirection = (yDist > 0) ? SwipeDirection.DOWN: SwipeDirection.UP; 

     } else { 
      if (xDistAbs < MIN_SWIPE_DISTANCE) {return false;} 
      swipeDirection = (xDist > 0) ? SwipeDirection.RIGHT: SwipeDirection.LEFT; 
     } 

     onSwipeEvent(swipeDirection); 
     return true; 
    } 

    private void onSwipeEvent(SwipeDirection swipeDirection) { 
     if (swipeDirection == SwipeDirection.UP) { 

      return; 
     } 
     if (swipeDirection == SwipeDirection.DOWN) { 

      return; 
     } 
     if (swipeDirection == SwipeDirection.LEFT) { 
     finger1() 
      return; 
     } 
     if (swipeDirection == SwipeDirection.RIGHT) { 
      finger1(); 
      return; 
     } 

} 

public enum SwipeDirection { 
    UP, DOWN, LEFT, RIGHT 
} 

可能でしょうか?私は何を変えるべきか、ここに加えるべきですか?

+0

を助けるかもしれ、何も –

答えて

0

x軸またはy軸のどのレベルをスワイプで操作したくないかを計算する必要があります。あなたがprivate static final int SWIPE_MIN_DISTANCE = 160としてスワイプの最小距離を宣言する必要が

+0

は良い音が、これを計算して実装する方法を変更していませんか? –

0

は、この値が変更された場合、それはあなたにClick here to implement it

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参照用のリンクを提供する方が良いでしょう。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿者](レビュー/低品質の投稿/ 16892191) – jwenting

+0

@jwenting提案ありがとう –

関連する問題