2

onGestureListener を実装するアクティビティがあります。同じアクティビティでダブルタップ イベントを検出するにはどうすればよいですか? アクティビティでダブルタップ イベントを認識することは可能ですか?

それも長押しを認識しませんか?それについて何か助けはありますか?

4

3 に答える 3

9

GestureDetectorOnDoubleTapListenerと同様に指定できますOnGestureListener。必要なのは、そのメソッドを実装OnDoubleTapListenerしてオーバーライドすることだけです。onDoubleTap

また、必要SimpleOnGestureListenerなものだけを使用してオーバーライドすることもできます。

final Context context = this;
final GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onDoubleTap(MotionEvent e) {
        Toast.makeText(context, "onDoubleTap", Toast.LENGTH_SHORT).show();
        return true;
    }

    @Override
    public void onLongPress(MotionEvent e) {
        Toast.makeText(context, "onLongPress", Toast.LENGTH_SHORT).show();
    }
};

final GestureDetector detector = new GestureDetector(listener);

detector.setOnDoubleTapListener(listener);
detector.setIsLongpressEnabled(true);

getWindow().getDecorView().setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event) {
        return detector.onTouchEvent(event);
    }
});
于 2013-01-24T17:20:42.660 に答える