android Touch ACTION Event
지난 글에서 onTouchEvent 메서드를 이용해서 화면을 터치했을 때 이벤트가 발생한 곳의 좌표를 구해서 화면에 출력해보면서 기본 개념을 정리했었는데요. 이번 글에서는 Touch ACTION 중 몇 가지를 응용해서 간단한 앱을 만들면서 액션 이벤트에 대해서 알아보겠습니다.
손가락으로 화면을 터치했을 때와 움직일 때 그리고 손가락을 떼었을 때 발생하는 이벤트를 이용해볼 텐데요. 앱을 실행하면 작은 아이콘 하나를 (0,0)의 위치에 나타나도록 하고 화면의 아무 곳이나 클릭하면 그곳으로 옮겨지도록 하며 누른 상태로 끌고 다니면 손가락 끝에 따라다니도록 할 거구요. 손가락을 떼었을 때는 처음 자리(0,0)으로 돌아가도록 하는 내용입니다.
여기서 사용하는 ACTION 상수는 DOWN, MOVE, UP이며 이것들이 실행되는지 확인하기 위해서 문자열 변수를 하나 선언해서 출력해볼 겁니다. 실행되는 이벤트를 구해오기 위해서는 onTouchEvent의 인자로 전달되는 MotionEvent에서 getAction() 메서드를 이용해서 구할 수 있는데 지난 글에서 작성했던 프로그램을 이 내용에 맞게 약간 수정해보겠습니다.
먼저 실행 중인 이벤트를 화면에 표시하기 위해서 문자열 변수 action을 선언하고 있으며 그 값은 "NO"로 초기화하고 있습니다.
다음은 onTouchEvent의 내용을 조금 수정했는데요. event.getAction으로 발생하는 이벤트를 구했을 때 해당되는 문자열을 출력하도록 하고 있으며 만약 ACTION_UP 일 때는 x와 y의 값에 0을 대입해서 아이콘의 위치를 맨 처음의 위치로 옮겨지도록 하고 있습니다.
마지막으로 onDraw 메서드에서는 아이콘을 x, y 좌표에 그리도록 하고 있으며 Paint 객체를 만들어서 글자의 크기는 20, 색은 빨간색으로 지정해서 출력하도록 하는 내용입니다.
이 앱을 실행하면 왼쪽 맨 위(0,0)의 위치에 아이콘이 생기게 되고 화면의 아무 곳이나 클릭하면 그곳으로 이동했다가 손가락을 떼면 다시 제자리로 돌아가게 됩니다. 하지만 터치한 상태로 끌고 다니면 손가락을 따라서 움직이다가 역시 손가락을 떼면 제 자리로 돌아가게 되는데요. 이는 간단한 영상으로 확인할 수 있도록 녹화를 해봤습니다. 정리한 내용대로 움직이는지 확인해보셔요.
정리한 내용과 영상이 대충 매치가 될 겁니다. 앞으로 자주 사용하게 될 내용일 거 같아서 정리해봤습니다. 수고하셨어요.