카테고리 없음

[Android][Java] 화면 터치 감지 dispatchTouchEvent

기버홀딩스 2023. 10. 12. 16:07

 

 

 

 

반갑습니다. 기버홀딩스입니다.

 

 

오늘은 휴대폰 화면을 터치 했을 때 감지 할 수 있는 함수 dispatchTouchEvent 

대해 설명할려합니다.

 

 

 

1. 메인 액티비티 onCreate 밖의 영역에서  dispatchTouchEvent @Override 해줍니다.

 

 2. event.getAction(); 을 int userAction에 담아 줍니다.

 

3.  userAction 상태에 따라 switch case 문을 이용해 케이스를 나누어 줍니다.

 

    여기서는 MotionEvent.ACTION_DOWN,  MotionEvent.ACTION_UP으로 2가지의 케이스로 

   나누었으나 필요에따라  MotionEvent.ACTION_MOVE,  MotionEvent.ACTION_SCROLL 등 여러 케이스로

   나눌수 있습니다.

 

MotionEvent.ACTION_MOVE: 휴대폰에 손을 떼지 않고 움직일 경우의 MotionEvent


MotionEvent.ACTION_SCROLL: 휴대폰을 스크롤 할 때의 MotionEvent

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class MainActivity extends AppCompatActivity{
 
 
 
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
}
 
 
 
 @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        int userAction = event.getAction();
 
  
 
        switch (userAction) {
            case MotionEvent.ACTION_DOWN:
 
 
                Log.i(TAG, "화면 누름");
 
//         화면을 눌렀을 때 필요한 코드를 넣어주시면 됩니다.
 
 
                break;
 
 
            case MotionEvent.ACTION_UP:
               
 
             Log.i(TAG, "화면에서 손 뗌");
 
//        화면에서 손을 뗐을 때 필요한 코드를 넣어주시면 됩니다.
 
 
 
                break;
 
 
 
            default:
                break;
        }
        return super.dispatchTouchEvent(event);
    }
 
}
cs

 

 

 

수고하셨습니다. 이상입니다.

 

오늘도 좋은하루되세요😊