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.
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.