내 활동에서 제스처를 처리하고 싶습니다. 이렇게하려면 내 Activity에서 public boolean onTouchEvent (MotionEvent MEvent) 메서드를 재정의 (override)해야합니다. 내용은 다음과 같습니다안드로이드 - 첫 번째 포인터와 두 번째 포인터를 구별하는 방법 onTouchEvent
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_UP)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_MOVE)
{
...
return true;
}
motionaction = MEvent.getActionMasked();
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_POINTER_UP)
{
...
return true;
}
return true;
제스처는 다음과 같습니다 (항상 약간의 움직임이 거의 때문에) 화면에
-finger1이 위치를 보유하고있는에
-finger2 이동 화면. 이것은 내가 움켜 잡고 자하는 운동입니다.
나는 5 가지 행동을 취할 수 있지만 두 손가락이 화면에있을 때 ACTION_MOVE가 첫 번째 및 두 번째 손가락의 움직임을 잡는 것이 문제입니다. MEvent.getActionIndex()은 항상 0 인 ACTION_MOVE에 대해 작동하지 않습니다. 내가 할 수있는 유일한 방법은 finger1의 위치를 저장하고 그 지점 근처에서 움직임을 버리는 것입니다. 결과적으로 손가락의 움직임이 완벽하지는 않습니다. 손가락이 손가락의 움직임을 감지 할 수는 있지만, 청자는 최소한의 움직임을 느낄 수 있기 때문에 작은 손가락 움직임에 의해 "오염되었습니다".
어떻게 개선 할 수 있습니까?