안녕하세요 푸민입니다.
안드로이드 개발을 하다보면 TouchEvent를 아주 많이 사용합니다!
주로 Drag 와 Pinch 이벤트에서 사용하는데요.
한번 알아볼까요!
1. 먼저 해당 View에 TouchEvent를 추가합니다.
이렇게 해도되고 OnTouchListener를 implements 로 받아서 onTouch()메소드를 구현해도되요!
2. 파라미터로 오는 View는 터치를 받고 있는 대상이고 MotionEvent가 바로 각종 모션정보를 가지고 있습니다. e.getAction()을 통해서 MotionEvent가 가지고 있는 정보를 사용할 수 있습니다.
요런식으로 switch문을 사용하여 구분해줍니다.
기본적으로 ACTION_DOWN으로 시작해서 ACTION_MOVE, ACTION_UP으로 이어집니다.
순서대로 터치 다운이벤트 그리고 이동(드래그) 그리고 마지막으로 손을 땟을때 이벤트인 업이 됩니다.
주로 다운에서 이벤트에 관한 초기화를 하고 업에서 마무리해주면됩니다.
3. 좌표를 활용합니다.
e.getX();
e.getY();
해당 코드를 통해서 터치좌표를 얻어올수 있습니다.
보통 터치가 너무 정밀하기에 손을 살짝 찍었다가 때어도 다운, 무브, 업 이 불립니다.
그래서 무브 이벤트는 정말 사용자가 드래그이동할때만 인식하기 위해서 일정수의 보정치가 있습니다.
int mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
위의 mTouchSlop이 바로 보정치입니다.
그래서 무브에서 해당 수치보다 높을때 드래그로 판단하시면 됩니다!
4. 핀치 이벤트를 활용합니다.
핀치이벤트는 MotionEvent.ACTION_POINTER_DOWN 과 MotionEvent.ACTION_POINTER_UP 을 통해서 제어할 수 있습니다.
처음 손가락이 터치된 상태에서 두번째 손가락이 터치되면 ACTION_POINTER_DOWN 가 불려집니다.
즉 이것을 활용하면 이와 같이 코딩할수 있습니다.
또한 터치 이벤트 리턴값을 true로 하면 하위에 있는 뷰들은 터치이벤트 및 클릭 이벤트를 받을 수 없게 됩니다.
즐코딩되세요~
'Development > Android' 카테고리의 다른 글
[안드로이드] Volley 를 사용하여 이미지 받기 (0) | 2015.08.26 |
---|---|
[안드로이드] Picasso 이미지 라이브러리 사용하기! (0) | 2015.08.25 |
[안드로이드] Api level 19 Package Index 요약 (0) | 2015.08.13 |
[안드로이드] Sprite Animation 적용해보기! (0) | 2015.08.11 |
[안드로이드] Location 정보 가져오기 (0) | 2015.08.09 |
댓글