만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/Android

[Android]이벤트의 종류들과 MotionEvent를 이용한 터치이벤트 처리

D36choi 2019. 8. 1. 15:32
728x90

* 터치 이벤트

- 화면을 누를 때 발생하는 이벤트

 

* 키 이벤트

- 키패드,HW 버튼을 누를 때 발생하는 이벤트

 

* 제스처 이벤트

- 터치 이벤트 중 패턴이 있는 이벤트

 

* 포커스

- 뷰마다 순서대로 주어지는 포커스

 

* 화면 방향 변경

- 화면 방향이 바뀜에 따라 발생하는 이벤트

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

textView = (TextView)findViewById(R.id.textView);

        View view = findViewById(R.id.view);

        view.setOnTouchListener(new View.OnTouchListener(){

            @Override

            public boolean onTouch(View v, MotionEvent event){

                int action = event.getAction(); // 상당히 많이 호출되는, 온터치 메소드의 구분자역할을 함.

                float curX = event.getX();

                float curY = event.getY();

                if(action==MotionEvent.ACTION_DOWN){

                    println("손가락 눌렸음 : "+curX+","+curY);

 

                }else if(action==MotionEvent.ACTION_MOVE){

                    println("손가락 움직임 : "+curX+","+curY);

 

                }else if(action==MotionEvent.ACTION_UP){

                    println("손가락 뗴졌음 : "+curX+","+curY);

                }

                return true;

 

            }

        });

Colored by Color Scripter

cs

* ACTION_DOWN - 누를 때

* ACTION_MOVE - 누른 채 이동

* ACTION_UP - 누른것을 뗄 때

 

터치 액션은 각각의 고유 상수가 정해져있다. 위 3개의 동작은 모두 static int 자료형이다.

 

curX와 curY  는  MotionEvent 클래스의 클릭 X축,Y축 좌표값을 getX,getY 메소드를 통해 받게됨.

println 은 기본 지원되는 메소드가 아니라 

1

2

3

public void println(String data){

        textView.append(data+"\n");

    }

cs

메인액티비티에 만들어놓은 TextView 에, 파라미터로 들어오는 문자열 데이터를 개행과 함께

append 되도록 따로 정의하였다.

 

 

 

 

* 본 자료는 edwith 부스트코스의 강의내용 공부를 위한 포스팅입니다.

 

'프로그래밍 > Android' 카테고리의 다른 글

[Android] view 와 view group의 정의와 관계  (0) 2019.07.24