Как реализовать двойной тап для просмотра поверхности в Android - PullRequest
8 голосов
/ 27 октября 2011

Расскажите, пожалуйста, как реализовать двойное касание для SurfaceView в Android с помощью детектора жестов.Кто-нибудь может привести пример кода?

1 Ответ

16 голосов
/ 27 октября 2011

Вы можете попробовать следующее .. на самом деле я проверил это, и это работает довольно хорошо:

1) Расширить GestureDetector.SimpleOnGestureListener и переопределить его onDoubleTap() метод:

    class DoubleTapGestureDetector extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            Log.d("TAG", "Double Tap Detected ...");
            return true;
        }

    }

2) Создание экземпляра GestureDetector:

final GestureDetector mGesDetect = new GestureDetector(this, new DoubleTapGestureDetector());

3) Установите OnTouchListener для вашего SurfaceView, переопределите его onTouch() метод и вызовите onTouchEvent() для вашего GestureDetector объекта:

    surfview.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            mGesDetect.onTouchEvent(event);
            return true;
        }
    });
...