활동에서 모든 터치 이벤트를 감지하여 캡처 한 다음 전달 이벤트를 다른보기로 전달할 수 있습니까? 예를 들어Android에서 터치 이벤트를 감지하는 방법
:
버튼 1 버튼 1 내가/그 터치를 캡처 이벤트를 클릭하고 자동으로 원터치로 기본적으로 버튼이 해당 터치 이벤트를 전달하려는 누르면 버튼 2. /를 눌러 당신이 얻을 클릭이 생성되고 동일한 클릭이 두 번째 버튼으로 자동 전달됩니다.
활동에서 모든 터치 이벤트를 감지하여 캡처 한 다음 전달 이벤트를 다른보기로 전달할 수 있습니까? 예를 들어Android에서 터치 이벤트를 감지하는 방법
:
버튼 1 버튼 1 내가/그 터치를 캡처 이벤트를 클릭하고 자동으로 원터치로 기본적으로 버튼이 해당 터치 이벤트를 전달하려는 누르면 버튼 2. /를 눌러 당신이 얻을 클릭이 생성되고 동일한 클릭이 두 번째 버튼으로 자동 전달됩니다.
먼저이 API 설명을 볼 걸릴 : 당신은 관찰자 디자인 패턴에 익숙하지 않은 경우
, 여기 링크입니다.
부울 android.app.Activity.dispatchTouchEvent 이후 (MotionEvent EV)
공공 부울 dispatchTouchEvent (MotionEvent의 EV) : 터치 스크린 이벤트를 처리하기 위해 호출 API 레벨 1 . 이 창에 전달되기 전에 터치 스크린 이벤트를 모두 터치 스크린 이벤트를 가로 채기 위해 무시할 수 있습니다. 정상적으로 처리해야하는 터치 이벤트 에 대해이 구현을 호출해야합니다.
매개 변수 ev 터치 스크린 이벤트.
반환 값 boolean이 이벤트가 소비 된 경우 true를 반환합니다.
전체 터치 이벤트를 가로 챌 수 있습니다.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
super.dispatchTouchEvent(ev);
if(btn1.onTouchEvent(ev)){
return btn2.onTouchEvent(ev);
}else{
return false;
}
}
이 코드는 내가 생각하는 것입니다.
TouchEvent를 단추 누르기에서 가져 와서 다른 단추를 호출하여 TouchEvent를 전달할 수 있다고 상상해 봅니다. 그러나 나는 안전 할 것이라고 확신하지 못합니다. (안드로이드는 당신에게 폭탄을 던질 수 있습니다)
더 안전한 해결책은 Button을 하위 클래스로 지정하고 Observer 디자인 패턴을 사용하는 것입니다. 각 버튼을 등록하여 서로 다른 버튼의 버튼 누르기를 수신하면 TouchEvent를 모두 안전하게 전달할 수 있습니다. http://en.wikipedia.org/wiki/Observer_pattern
감사합니다. 모든 활동 수준의 일정을 터치합니다. –