brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Oct 30. 2017

Android Gestures

Touch mechanics and activities

Android Gestures


#01 https://www.slideshare.net/milindchaskar/android-gestures-v1-35511936


안드로이드에서는 화면을 손가락으로 컨트롤할 수 있는 다양한 제스처들이 있습니다. 

안드로이드에서의 제스처(Gestures)는 터치 메커니즘(Touch mechanics)과 터치 동작(Touch activities)을 포함합니다.

터치 메커니즘 : 손가락이 화면에서 하는 일
터치 동작 : 특정 제스처의 결과


터치 메커니즘, 동작과 관련된 내용들에 대해 알아보겠습니다.




Touch mechanics


터치 메커니즘이란 이용자의 손가락이 화면에서 하는 일을 나타냅니다.

같은 터치 메커니즘이라도 사용된 상황에 따라 다른 동작을 할 수 있습니다.

예를 들어, Long-press drag는 특정 UI를 들어서 옮기는 동작을 하기도 하지만 사진 갤러리에서 여러 개의 사진들을 선택하는 동작도 합니다.


#02 Touch mechanics





Touch activities


터치 동작이란 특정 제스처의 결과를 말합니다.

터치 동작은 여러 개의 터치 메커니즘으로 구성할 수 있습니다.

예를 들어, pinch open/double-touch/double-touch drag를 통해 zoom in을 할 수 있습니다.



#03 Activate, Cacel or Escape   

#01 Activate


- 버튼과 같은 화면 요소를 활성화합니다.

- Touch


#02 Cancel or Escape


- Dialog나 메뉴에서 처럼 현재 작업을 취소하거나 화면 밖으로 탈출합니다.

- Touch


#04 Drag or Swipe or Fling

#03 Drag or Swipe or Fling


- Scroll, Swipe, 펼치기, 열기, 닫기 등 다양한 작업을 합니다.

- 아래 Drag, Swipe, or Fling를 참고하시기 바랍니다.

Drag, Swipe, or Fling








#05 Data selection (when nothing is selected)

#04 Data selection (when nothing is selected)


- 단일 요소를 선택합니다.

- Long press, Two-finger touch







#06 Data selection (when items are already selected)  

#05 Data selection (when items are already selected)


- 선택 모드에서 추가 요소를 선택합니다.

- 그다음에 다른 제스처를 조합

- Touch






#07 Data multi-selection drag  

#06 Data multi-selection drag


- 제스처의 시작 지점부터 이동한 거리만큼 추가 요소를 선택합니다.

- Touch-finger swipe or drag, long-press drag with no item selected









#08 Pick up and move

#07 Pick up and move


- 선택한 요소들을 다음과 같이 이용할 수 있습니다.

- 데이터(리스트 or 카드) 재정렬, 요소를 특정 대상으로 이동

- Two-finger long-press drag, long-press drag on selected item





#09 Zoom in

#08 Zoom in


- 콘텐츠를 확장합니다.

- Double-touch, Double-touch drag (down), Pinch open







#10 Zoom out

#09 Zoom out


- 콘텐츠를 축소합니다.

- Double-touch at maximum zoom, Double-touch drag (up), Pinch closed, Two-finger touch, Two-finger double touch









Drag, Swipe, or Fling


#11 Drag, Swipe, or Fling


Drag, Swipe, Fling 이 세 동작은 한 손가락으로 누른 상태에서 이동시킨다는 점에서 동일하게 볼 수도 있습니다. 하지만 속도 측면에서는 차이점이 있습니다.


Drag : 미세하고, 느리고, 좀 더 정교합니다. 그리고 일반적으로 화면에 표시된 대상을 가집니다.

Swipe : 동작이 크고 좀 더 빠릅니다. 그리고 일반적으로 화면에 표시된 대상이 없습니다.

Fling : 동작이 크고, 화면에 표시된 대상이 없습니다.


그리고 세 동작의 속도 차이는 동작 결과를 취소(즉시 되돌릴 수 있는지) 여부에도 영향을 줍니다.


Drag : 요소와의 접촉(contact)을 계속 유지하고 있기 때문에, 제스처의 방향을 반대로 하면 다시 취소할 수 있습니다.

Swipe : 속도와 임계 지점(동작 결과를 취소할 수 있는 지점)을 넘었는지에 따라 취소 여부도 달라집니다.

Fling : 빠르고 임계 지점을 넘었기 때문에 취소할 수 없습니다.





#12 Scroll

#01 Scroll


- Scroll은 content 내에서 한 방향으로 수직 또는 수평으로 swipe 합니다.

- Scroll 양은 제스처의 속도에 따라 달라집니다.

: Drag (slow) / Swipe / Fling (fast)

-  Scroll 된 콘텐츠는 제스처가 수행되는 것과 동일한 비율로 이동합니다.




#13 Pan

#02 Pan


- Pan은 View의 시야를 전 방향으로 확장하는 하나 또는 두 개의 손가락 제스처입니다.

- 일반적으로 Drag와 함께 이용합니다.

- 주로 지도와 같이 크기의 제한이 없는 콘텐츠나, 화면 크기보다 큰 웹 페이지나 사진 같은 콘텐츠를 확장할 때 쓰입니다.

- 두 손가락을 이용한 Pan은 지도에서 pinch zoom이나 rotate 같은 동작 또는 tilt(기울이기) 동작을 할 때 쓰입니다.










#14 Dismiss

#03 Dismiss


- Dismiss 제스처는 list 항목 또는 card와 같이 Swipe 할 수 있는 요소에서 Scroll 하는 방향과 직각을 이룰 때 발생합니다.

- 보통 list 들은 수직으로 Scroll 하기 때문에 Dismiss 제스처는 수평입니다.

- 제스처의 임계 지점을 넘으면 동작합니다.

- list 목록 중 특정 요소를 삭제할 때 쓰입니다.






#15 Swipe to refresh

#04 Swipe to refresh


- Swipe 하여 refresh 하는 것은 일반적으로 수직으로 하향 이동할 때 발생합니다.

- list의 최상단이나, card 또는 container의 가장자리에서 이용할 수 있습니다. 

- list 목록을 새로 고침 할 때 쓰입니다.








#16 Paging swipe

#05 Paging swipe


- Paging swipe는 연관된 화면 밖의 content를 표시하기 위해 화면 안 content를 Swipe 하는 것입니다.

- Paging swipe당 하나의 page를 표시합니다.

- 일반적으로 화면을 swipe 해서 이동할 때 이용합니다.







#17 Tilt

#06 Tilt


- Tilt는 3차원 content를 앞뒤로 이동합니다.

- 지도에서와 같이 두 손가락을 이용해서 이용할 수 있습니다.










안드로이드에서 쓰이는 제스처가 생각보다 많네요.

그리고 용어들도 많은데 정확한 의미도 모른 채 쓰고 있었네요.

공부합시다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari