2012-06-02 2 views
2

내 앱에서 멀티 터치 버튼을 구현했으며, 내 버전의 OnTouchListener (및 onTouch 메소드)를 모든 버튼에 연결했습니다. 모두 듣는 사람의 표준 행동에 속하는 것으로 보이는 것을 제외하고는 완벽하게 작동합니다. 길기 때문에 코드를 게시하지 않고 설명 할 수 있기를 바랍니다.Android : OnTouchListener.OnTouch가 멀티 터치에서 호출되지 않았습니다.

단추를 누르고 있으면 예상대로 onTouch 메서드가 호출되고 응용 프로그램에서 단추를 클릭하는 것으로 나타납니다. 두 번째 단추를 클릭 한 상태로 유지하면 onTouch 메서드 (첫 번째 단추 관련)가 예상대로 호출되고 응용 프로그램에서 단추를 클릭하는 것으로 나타납니다.

첫 번째 버튼의 손가락이 절대 움직이지 않으면 onTouch 이벤트가 호출되지 않고 두 번째 버튼이 논리적으로 해제되지 않습니다. onTouch 메서드는 적어도 픽셀 첫 손가락을 움직이는 경우에만 호출되며 그 순간에만 두 번째 단추가 해제됩니다.

1 밀리 초 이상 똑같은 위치에 손가락을 정확히 두는 것이 어렵다는 것을 알고 있습니다. 그러나 때로는 이런 일이 발생합니다.이 행동에 대한 이유를 이해하기 위해서는 시간이 필요했습니다. 솔루션을 찾지 못했지만 문제 해결 방법을 제안 했습니까? 대단히 감사합니다.

답변

0

나 푸시의 부정확성을 방지하는 것은 도움의 당신의 onTouch

PointF curr = new PointF(event.getX(), event.getY()); 
switch (event.getAction()) { 
    case MotionEvent.ACTION_UP: 
     float xDiff = Math.abs(curr.x-start.x); 
     float yDiff = Math.abs(curr.y-start.y); 
     if (xDiff < 5f && yDiff < 5f) { 
     //insert here your code when button is click 
     } 
    break; 

안에이보십시오.

+0

안녕하십니까, 제 문제는 onTouch가 호출되지 않습니다 :-) 아마 각 버튼에 대해 동일한 클래스의 다른 수신기를 만들어야 할 것입니다. – jenergy

관련 문제