MotionEvent 에는 기본적으로 마우스 기능으로 쓸만한게 up down move 가 있는데여 적당히 설정만 잘 하실 경우 down - up 은 클릭이고 down - up - down - up 이건 더블 클릭이겠죠 그리고 down - move - up 이건 커서 이동으로 표현을 할 수 있을텐데요 그러면 단순한 커서 이동과 드래그 앤 드롭을 어떻게 구분하는가가 중요한데 이건 down 을 LongPress로 하면 될듯 싶네여 즉 짧게 누르고 바로 이동하면 커서 이동 길게 누르고 있다가 이동하면 드래그 앤 드롭
그리고 더블 클릭의 경우 클릭이 두번 사용되는것과 구분 지어야 할텐데 카운터로 하게 되면 처음에 클릭하고 막 놀다가 다시 클릭하면 더블 클릭 인식할수도 있으니
EventTime 인가 DownTime 인가 암튼 그거 이용해서 시간 측정을 하시면 가능할꺼라 봅니다 즉 클릭과 클릭 사이의 시간이 300ms 이내에는 더블 클릭으로 처리
이런식이면 될거 같은데여....
제가 구글맵으로 놀던 중 맵의 클릭과 이동을 하다 보니 이런식으로 구현했는데 이걸 맵이 아니라 커서라고 생각하고 하면 가능할꺼라 봅니다 move가 발생하게 되면 지속적으로 화면 좌표값을 받아와서 커서를 새롭게 그려야겠지만요
그냥 생각이예요 ㅎㅎ; 될지는 직접 해봐야 알겠죠
2010.08.26 15:28:21
효빵
와우- 자세하게 알려주셔서 정말 감사하네요 ^^ 고민하고 있었는데 한 번 도전해봐야겠습니다. 답변 감사드립니다 : )
MotionEvent 에는 기본적으로 마우스 기능으로 쓸만한게
up down move 가 있는데여
적당히 설정만 잘 하실 경우
down - up 은 클릭이고
down - up - down - up
이건 더블 클릭이겠죠
그리고 down - move - up 이건 커서 이동으로 표현을 할 수 있을텐데요
그러면 단순한 커서 이동과 드래그 앤 드롭을 어떻게 구분하는가가 중요한데
이건 down 을 LongPress로 하면 될듯 싶네여
즉 짧게 누르고 바로 이동하면 커서 이동
길게 누르고 있다가 이동하면 드래그 앤 드롭
그리고 더블 클릭의 경우 클릭이 두번 사용되는것과 구분 지어야 할텐데
카운터로 하게 되면 처음에 클릭하고 막 놀다가 다시 클릭하면
더블 클릭 인식할수도 있으니
EventTime 인가 DownTime 인가 암튼 그거 이용해서
시간 측정을 하시면 가능할꺼라 봅니다
즉 클릭과 클릭 사이의 시간이 300ms 이내에는 더블 클릭으로 처리
이런식이면 될거 같은데여....
제가 구글맵으로 놀던 중 맵의 클릭과 이동을 하다 보니
이런식으로 구현했는데 이걸 맵이 아니라 커서라고 생각하고 하면 가능할꺼라 봅니다
move가 발생하게 되면 지속적으로 화면 좌표값을 받아와서 커서를 새롭게 그려야겠지만요
그냥 생각이예요 ㅎㅎ; 될지는 직접 해봐야 알겠죠