Android 개발 Tip - 5. GestureListener

Mobile Programming/Android Tip 2010. 11. 11. 18:17

더블클릭 입력을 받을때는 어떻게 해야할까 ?

OnTouchEvent로 Down이 발생했을때 타이머를 봐서 몇초안에 다시 눌리면 ...
아아. 생각만해도 현기증난다.

안드로이드는 꽤나 세심하게 더블클릭에 대한 리스너도 만들어 두었다.

바로 GestureListener가 그것.

java 소스에서 GestureDetector.SimpleOnGestureListener 를 상속한 리스너 클래스를 만들고
GestureDetector 형 객체 선언,
해당 객체를 사용한 클래스의 생성자부분에서 new GestureDetector(context,new GestureListener());를 호출해준다.
그 객체의 리스너를 포함한 정보를 제공하는 문장으로 보인다 ^^

이제 GestureDetector를 등록한 해당 클래스에서 더블클릭이 발생했을때 GestureListener클래스로 자동 호출이되고,
그 클래스내의 오버라이딩 함수로 이벤트가 전달된다.

class GestureListener extends GestureDetector.SimpleOnGestureListener{
		
		AnimationDrawable ani;
        @Override
        public boolean onDoubleTap(MotionEvent e) {
            // doubletap이 발생할때 할일.
        }
}


GestureDetector mGesture;
mGesture = new GestureDetector(context,new GestureListener());

if(mGesture.onTouchEvent(event))
      return true;