2014-11-26 1 views
0

В моем приложении у меня есть GLSurfaceView, где я рисую вещи, используя OpenGL ES. Теперь я хочу, чтобы пользователь мог коснуться этого GLSurfaceview. Более того, как только пользователь поместит палец на представление, я хочу определить текущую позицию на оси y события касания. Я использую следующий код:Получить текущую позицию Y событий касания на GLSurfaceView

mGLSurfaceView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       Log.d(TAG,motionEvent.getY()+""); 
       return false; 
      } 
     }); 

Это прекрасно работает, однако, что я именно хочу, что я также получить значение ПОлОжЕНИЯ у в то время как пользователь пойло вверх и вниз на поверхности. Используя приведенный выше код, обратный вызов onTouch() вызывается только один раз, когда пользователь прикасается к поверхности. Есть ли другой слушатель, который я могу использовать для этого, которого я не вижу?

В конце концов, я хочу реализовать функцию прокрутки/масштабирования на моем GLSurfaceView.

ty

ответ

0

Хорошо, понял это самостоятельно. Обратный вызов вызывается не только тогда, когда пользователь нажимает на представление. Тем не менее, нужно «отфильтровать» действия MOVE из события движения.

Так вот рабочий код:

mSurfaceView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 

       if(motionEvent.getAction() == MotionEvent.ACTION_MOVE) 
       Log.d(TAG,"Y:Postion: " + motionEvent.getY()); 
       return true; 
      } 
     }); 
Смежные вопросы