2010-03-27 5 views
2

나는 아직도 이것에 대해 새롭기 때문에 나는 한 번에 2 개의 버튼을 누를 수있어 큰 이익을 얻을 수있는 작은 앱을 개발 해왔다. 이것을 달성하는 가장 좋은 방법은 무엇입니까? OnClickListener가 그런 식으로 작동한다고 생각하지 않으며, OnTouch 이벤트로이를 수행하는 예제를 보았습니다. 그러나 OnTouch 이벤트로 버튼 누름을 설정하는 방법을 모르겠습니다.안드로이드 2.x를위한 다중 버튼 누르기

답변

5

직접 터치 이벤트를 처리해야합니다. 다중 포인터 (일명 멀티 터치) API를 사용하면 매우 쉽습니다. 단지 onTouchEvent() 메서드를 재정의하거나 단추에 OnTouchListener를 등록하십시오.

+0

감사합니다. 내가 실행중인 유일한 문제는 여러 버튼에 대해 OnTouchListener를 구현하는 방법입니다. 모든 OnTouchListener를 설정해야합니까? 또는 하나의 리스너를 설정하고 switch (v.getId())와 같은 switch 문을 사용할 수 있습니까? R.id.button1 : ..... R.id.button2 : ...... – Pat

+0

nm이라고 생각했습니다. 그것을 밖으로 :) 다시 한번 감사드립니다! – Pat

+0

By Romain - 만약 당신이 '구글의 Romain Guy'라면 Stack Overflow에서 하나의 계정을 사용하려고 할 수 있습니까? 최대 5 개의 계정을 사용하는 것으로 보입니다. 대부분 계정이 새롭고 낮은 평판을 얻습니다. 따라서 사람들이 얻는 답변이 '공식적이며 신뢰할 수 있는지', 또는 단순히 Google과 같은 이름을 가진 사람과 의견이 일치하는지 여부를 알기가 어렵습니다. –

3
@Override 
public boolean onTouchEvent (MotionEvent event) { 
    if (event.getAction()==MotionEvent.ACTION_UP) { 
     // reset all buttons 
     ... 
    } 
    else { 
     int count=event.getPointerCount(),vx1=-1,vy1=-1,vx2=-1,vy2=-1; 
     if (count>=1) { 
      vx1=(int)event.getX(0); 
      vy1=(int)event.getY(0); 
     } 
     if (count>=2) { 
      vx2=(int)event.getX(1); 
      vy2=(int)event.getY(1); 
     } 
     ... 
    } 
    return true; 
} 
+0

그것은 나를 위해 작동하지 않습니다 ..... .. – biquillo

+0

당신이 * * * 작동하지 않는다고 말하면 ... –

+0

아마도 Loquis는 biquillo가 말한 것은 여러분의 예제가 좌표 만 보여 주지만 그 좌표 아래에 단추를 얻는 방법을 보여주지 않는다는 것입니다. onTouchEvent (View view, MotionEvent) 호출에 대한 여러 포인터가있는 MotionEvent를 받으면 뷰는 두 개의 버튼 중 하나입니다 – sixro