터치 및 키 이벤트 처리

jihyo·2022년 7월 2일
0

Android

목록 보기
11/17

터치 이벤트

스마트 폰을 사용할 때 터치를 제일 많이 한다. 터치도 다양하게 한다.

  • 한 번만 탭
  • 몇 초간 누르거나
  • 스와이프를 하거나

이런 동작들은 터치 이벤트 콜백 함수인 onTouchEvent() 를 선언해서 사용한다.

  • 콜백 함수 : 어떤 이벤트가 발생하거나 시점에 도달했을 때 시스템에서 자동으로 호출하는 함수

액티비티에서 onTouchEvent() 를 오버라이딩해서 선언하면 해당 액티비티 화면에서 터치하는 순간 자동으로 호출된다.

  • onTouchEvent() : 매개변수로 MotionEvent 객체를 가지며, 터치의 종류와 발생 지점(좌표값)을 가진다.

터치 이벤트의 종류

앞서 말한 것처럼 터치의 종류도 다양하다.

  • ACTION_DOWN : 화면을 손가락으로 누른 순간의 이벤트
  • ACTION_UP : 화면에서 손가락을 떼는 순간의 이벤트
  • ACTION_MOVE : 화면을 손가락으로 누른 채로 이동하는 순간의 이벤트

화면을 눌렀다 떼면 onTouchEvent() 함수가 2번 호출된다. 왜냐하면 누를 때 ACTION_DOWN 뗄 때 ACTION_UP 이벤트가 호출되기 때문이다.

터치 이벤트를 처리 예시

01 터치 이벤트 로그

로그를 찍어 확인해보면 ACTION_DOWNACTION_UP이 찍히는 것을 확인할 수 있다.

터치 이벤트 발생 좌표값 얻기

터치 이벤트 좌표값도 얻을 수 있는데

  • x : 이벤트가 발생한 뷰의 X 좌표
  • y : 이벤트가 발생한 뷰의 Y 좌표
  • rawX : 화면의 X 좌표
  • rawY : 화면의 Y 좌표

터치 이벤트 발생 좌표값 얻기 예시
화면이 눌렸을 때 좌표값만 얻으면 되기 때문에 ACTION_UP 은 제외한다.
02 터치 이벤트 좌표값 로그

터치 이벤트는 게임이나 화면에 뭔갈 그리는 앱을 만들 때는 자주 사용되겠지만 일반적으로 뷰가 터치되는 이벤트에서는 따로 제공되는 것이 있기 때문에 해당 부분에서는 사용되지 않는다.

키 이벤트

키 이벤트로 처리할 수 있는 것은 Navigation Bar(홈, 뒤로가기, 오버뷰) 중에서 뒤로가기볼륨 조절 버튼을 처리할 수 있다.

  • onKeyDown : 키를 누른 순간의 이벤트
  • onKeyUp : 키를 떼는 순간의 이벤트
  • onKeyLongPress : 키를 오래 누르는 순간의 이벤트

뒤로가기, 볼륨 조절 이벤트 처리 예시

03 키 이벤트 로그

근데 뒤로가기에 대한 이벤트 처리에는 onBackPressed() 함수도 따로 제공되는데 사용법은 크게 다르지 않다.

04 onBackPressed() 로그

뷰 이벤트에 대한 처리는 다음 포스트에서...

0개의 댓글