프로그램/안드로이드

OnTouch 이벤트가 안 먹을때는, MotionEvent.ACTION_POINTER_DOWN 대신 MotionEvent.ACTION_DOWN 을 써 보자.

(주)CKBcorp., 2015. 3. 19. 06:00
반응형



말그대로다.
별 코드를 다 박아봐도 mouse down / mouse up 이 안 나와서 뭔가 했는데, 알고보니 예제 코드가 잘못된 거였다.

아래의 코드를 보자.


public boolean onTouch(View v, MotionEvent event)
{
switch ( event.getAction() )
{
case MotionEvent.ACTION_POINTER_DOWN :
Log.v( "TEST", "_DOWN");
break;
case MotionEvent.ACTION_POINTER_UP :
Log.v( "TEST", "_UP" );
break;
case MotionEvent.ACTION_MOVE :
Log.v( "TEST", "_MOVE" ); 
break;
}
return true;
}


인터넷에서 뒤져낸 코드인데, 아무리 해도 _DOWN / _UP 이 안나온다.
삽질을 한두시간정도 하다가, 혹시나 해서 action 값을 찍어보니까,

EVENT. A:0 _DOWN:5 _UP:6 MOVE:2



... 결론부터 말하면, 


public boolean onTouch(View v, MotionEvent event)
{
int eventaction = event.getAction(); 

switch ( eventaction )
{
case MotionEvent.ACTION_POINTER_DOWN :
case MotionEvent.ACTION_DOWN :
Log.v( "TEST", "_DOWN");
break;
case MotionEvent.ACTION_POINTER_UP :
case MotionEvent.ACTION_UP :
Log.v( "TEST", "_UP" );
break;
case MotionEvent.ACTION_MOVE :
Log.v( "TEST", "_MOVE" ); 

break;
}
return true;
}


이렇게 바꿨다.
인터넷 예제코드라 뭐라 하기도 힘들다.





 




 


반응형