2013-03-14 3 views

답변

2

View에서 onTouchEvent()을 무시할 수 있습니다. ACTION_DOWN은 첫 번째 "포인터"가 놓일 때 주어집니다. 그 이후부터 손가락을 누른 다음 손을 떼면 ACTION_POINTER_DOWN 또는 ACTION_POINTER_UP이됩니다. 그런 다음 마지막 포인터/손가락을 놓으면보기가 ACTION_UP이됩니다. 이 내용은 MotionEvent docs에 명확하게 나와 있습니다.

이와 비슷한 것이 당신이 찾고있는 것일 수도 있습니다. View을 작업하고 있습니다.

@Override 
public boolean onTouchEvent(MotionEvent event) 
{ 
    if(event.getAction() == MotionEvent.ACTION_DOWN) 
     isTouching = true; 
    else if(event.getAction() == MotionEvent.ACTION_UP) 
     isTouching = false; 

    return super.onTouchEvent(event); 
} 
+0

고마워요! 하지만이 코드는 단일 터치에서만 사용된다고 생각합니다. 두 개 이상의 포인터가있는 경우 그 중 하나는 작동하고 다른 하나는 작동하지 않지만 MotionEvent.ACTION_UP 이벤트가 발생합니다. –

+0

'ViewGroup'의 서브 클래스로 작업하고있는'View'가 있습니까? 아이가있는'View '로 작업한다면 좀 더 복잡하다고 생각합니다. – wsanville

+0

여러 터치 포인터가있는 경우 첫 번째 포인터가 'ACTION_DOWN'을 (를) catch하고 다른 포인터가 'ACTION_POINTER_DOWN'을 (를) catch합니다. 마지막 포인터가 'ACTION_UP'을 (를) catch하고 다른 포인터가 'ACTION_POINTER_UP'을 (를) –

관련 문제