2011-11-29 2 views
0

Android에서 OpenGl 프로그램의 터치 스크린 이벤트를 처리하는 방법은 무엇입니까? 이 질문과 관련된 몇 가지 게시물을 체크 아웃했습니다. How to intercept touchscreen events in Android OpenGL ES? 하지만 다른 문제 유형의 처리기를 작성하더라도 해당 처리기가 호출되지 않아도 MotionEvent.ACTION_DOWN 이벤트 만 처리 할 수 ​​있습니다. Android 문서 샘플은이 이벤트 만 사용합니다. 다른 이벤트가 지원 되나요 ?? 내 onTouch 핸들러는 switch 문으로 변환 시도, 일련의 if/else 구문을하고 시도하고 그들이 작동하는지 this-OpenGL을 사용하여 android에서 터치 이벤트를 처리하는 방법

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; 
} 

답변

2

같은 것을 보인다. 어쩌면 휴식을 취하고 대신 진실을 되 돌린다.

은 내가 그것을 할 방법 :

 @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; 
관련 문제