我想知道在使用GestureDetector时如何捕获Google Glass上的两个向下滑动事件。我似乎能够捕获所有其他事件,但不能捕获TWO_SWIPE_DOWN。看到下面的代码,似乎我的onGesture()函数在这种情况下甚至没有调用 - 例如Log.e()消息不会显示在LogCat for TWO_SIPE_DOWN中,但会显示所有其他情况
private GestureDetector createGestureDetector(Context context) {
GestureDetector gestureDetector = new GestureDetector(context);
//Create a base listener for generic gestures
gestureDetector.setBaseListener( new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture gesture) {
Log.e("Waveform", "gesture: " + gesture.toString());
if (gesture == Gesture.TAP) {
Log.e("WaveForm", "TAP");
return true;
} else if (gesture == Gesture.TWO_TAP) {
Log.e("WaveForm", "TWO_TAP");
return true;
} else if (gesture == Gesture.SWIPE_RIGHT) {
Log.e("WaveForm", "SWIPE_RIGHT");
return true;
} else if (gesture == Gesture.SWIPE_LEFT) {
Log.e("WaveForm", "SWIPE_LEFT");
return true;
} else if (gesture == Gesture.SWIPE_UP) {
Log.e("WaveForm", "SWIPE_UP");
return true;
} else if (gesture == Gesture.SWIPE_DOWN) {
Log.e("WaveForm", "SWIPE_DOWN");
return true;
} else if (gesture == Gesture.TWO_SWIPE_DOWN) {
Log.e("WaveForm", "TWO_SWIPE_DOWN");
return true;
}
return false;
}
});
gestureDetector.setFingerListener(new GestureDetector.FingerListener() {
@Override
public void onFingerCountChanged(int previousCount, int currentCount) {
// do something on finger count changes
}
});
gestureDetector.setScrollListener(new GestureDetector.ScrollListener() {
@Override
public boolean onScroll(float displacement, float delta, float velocity) {
return false;
}
});
return gestureDetector;
}