2012-11-28 3 views
0

Android에서 어떻게 이벤트를 감지합니까? 이벤트에 대해 다른 핸들러를 구현하는 것에 대해 묻지는 않지만 논리에 따라 이벤트 유형을 결정하십시오. 예를 들어, 사용자가 화면에서 스 와이프를 수행 할 때 Android SDK가 스크롤 이벤트 나 다른 이벤트 대신 스 와이프 이벤트를 감지하면 어디에서 사용할 수 있습니까? 미리 감사드립니다!Android 이벤트 감지

+0

자바 스크립트 또는 WinForms에서 익숙한 것처럼 Android에 이벤트가 없습니다. @TedHopp의 대답은 정확합니다. – Codeman

답변

1

터치 이벤트는 일반적으로 GestureDetector으로 해석됩니다. 일반적으로 터치 이벤트는 으로 전달하여 View으로 처리됩니다. GestureDetector은 터치 이벤트의 최근 기록을 분석하여 특정 제스처 (탭, 플링 등)가있을 때이를 감지합니다. 그런 다음 GestureDetector은 등록 된 리스너 중 하나 (종종 SimpleOnGestureListener의 하위 클래스)에 알립니다.

제스처의 의미 의미를 결정하는 것은 청취자의 몫입니다. 예를 들어, ScrollView은 빠르게 스크롤하여 fling 이벤트에 반응하는 OnGestureListener을 설정합니다. 사용자 정의보기는보기에서 일부 오브젝트를 삭제하여 fling에 반응 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. SDK Android가 터치 이벤트 또는 탭 이벤트를 결정하는 정확한 위치와 GestureDetector에서 터치 이벤트를 분석하고 탭, 플링 등을 결정하는 터치 이벤트에 대한 아이디어가 있습니까? – Christian

+0

@ user1858060 - 소스 코드의 어디에 있습니까? 'GestureDetector' [here] (https://github.com/android/platform_frameworks_base/blob/master/core/java/android/view/GestureDetector.java)를 찾을 수 있습니다. –

+0

감사! 그러나 이벤트가 click, longclick 또는 복잡한 제스처 등이이 클래스에서 결정되지 않은 것 같습니다. – Christian