2

I don't know how to detect clock-wise gesture in android. I implemented GestureDetector.OnGestureListener

private GestureDetector= new GestureDetector(this);


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

@Override
public void onShowPress(MotionEvent e) {

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
    return false;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    return false;
}

@Override
public void onLongPress(MotionEvent e) {

}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

    return false;
}

Any idea? Thanks.

Cabezas
  • 9,329
  • 7
  • 67
  • 69

1 Answers1

1

There isn't built in support for that. You'll need to build it from onTouch events. When you detect a touch event with ACTION_MOVE, save it. Then look at the last N points and see if its moving clockwise. If so, perform whatever action you want. Clear the list of points on an ACTION_UP.

To check for a clockwise set of points, an algorithm is described here: How to determine if a list of polygon points are in clockwise order?

Actually I also found a tutorial at http://android-coding.blogspot.com/2012/03/gestures-detection-and-canvas-scale.html

The answer is basically using Google's (mostly undocumented) android.gesture package and their machine learning algorithms to do a best guess match to an example clockwise gesture.

Community
  • 1
  • 1
Gabe Sechan
  • 90,003
  • 9
  • 87
  • 127