как обрабатывать сенсорные события в Android с OpenGL - PullRequest
0 голосов
/ 29 ноября 2011

Как обрабатывать события сенсорного экрана для программ OpenGl в Android?Я проверил несколько сообщений, связанных с этим вопросом, например: Как перехватывать события сенсорного экрана в Android OpenGL ES? Но моя проблема в том, что я могу обрабатывать только события MotionEvent.ACTION_DOWN, даже если я пишуобработчик для других типов событий, эти обработчики не называются. Образец документации Android также использует только это событие. Поддерживаются ли другие события ??Мой обработчик onTouch выглядит примерно так:

public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN :
      Log.d(TAG, "mode=DOWN");
      break;
      case MotionEvent.ACTION_UP :
      case MotionEvent.ACTION_POINTER_UP :
      Log.d(TAG, "mode=UP");
          break;
      }
   return true;
}

1 Ответ

2 голосов
/ 03 декабря 2011

Попробуйте выполнить серию операторов if / else и посмотрите, работают ли они, а затем попробуйте преобразовать их в оператор switch. Может быть, взять перерыв и вместо этого вернуть истину.

Вот как я это делаю:

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            final float mouseSensitivity = 0.5f;

            if(event.getAction()==MotionEvent.ACTION_DOWN){
                startX = event.getX();
                startY = event.getY();
            } else if(event.getAction()==MotionEvent.ACTION_UP){
                startX = 0.0f;
                startY = 0.0f;
            } else if(event.getAction()==MotionEvent.ACTION_MOVE){
                graphicsRenderer.rotate((startY - event.getY()) * mouseSensitivity,(startX - event.getX()) * mouseSensitivity);
                startX = event.getX();
                startY = event.getY();
            }

            return true;
        }

// Where startX and startY are global int variables;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...