Android Catch the swipe gesture

사용 버전: Android Studio 4.1.1
사용 언어: Kotlin 1.4.20

안드로이드 Catch the swipe gesture를 해보겠습니다.


안드로이드에서 손가락으로 화면을 왼쪽에서 오른쪽으로 긋거나, 오른쪽에서 왼쪽으로 그으면 그에 따라 화면이 변화하는 것을 해보겠습니다.



Swipe gesture가 적용이 안된 모습입니다.



오른쪽에서 왼쪽으로 움직여도 아무런 반응이 없습니다.



변수 gesture를 만들고 GestureDetector()를 선언합니다.







onFling을 override 합니다.

onFling은 손을 대었다가 떼야 작동합니다.

onScroll의 경우 손을 대서 움직이는 동안 계속 작동합니다.

그래서 onFling을 사용합니다.






그리고, e1(손을 대는 순간), e2(손을 떼는 순간)의 좌표를 이용하여, X, Y의 차이를 diffX, diffY에 저장합니다.

velocity는 가속도를 나타냅니다. diffX와 velocity가 특정 값 이상이면, 좌우로 움직인 것이 됩니다.








거기에 diffX의 값을 비교하여 0보다 크면, 왼쪽에서 오른쪽으로 손을 움직인 것이고, 0 보다 작으면 오른쪽에서 왼쪽으로 손을 움직인 것입니다.









onFlingRightToLeft와 onFlingLeftToRight를 정의해 줍니다.

저는 달력의 월을 바꾸도록 만들었습니다.







그리고, 어떤 view에서 swipe를 계산할 것인지를 정합니다.

저는 Calendar 위에서 작동하도록 만들었습니다.

setOnTouchListener를 사용합니다.






그리고, 어떤 view에서 swipe를 계산할 것인지를 정합니다.

저는 Calendar 위에서 작동하도록 만들었습니다.

setOnTouchListener를 사용합니다.







달력 위에서 손을 움직이자 월이 변경됩니다.

달력이 아닌 곳에서 움직이면 변경되지 않습니다.



끝.


카테고리: Android

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

tensorflow tf.random.uniform()

Android Notification with Full Screen

KiCad 시작하기 2 (PCB 만들기)

Android Minimum touch target size

Python bs4.SoupStrainer()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

음악 총보(Score), 파트보(Part)

tensorflow tf.expand_dims()