라떼는말이야

[Android] 터치 이벤트 처리 본문

안드로이드

[Android] 터치 이벤트 처리

MangBaam 2021. 3. 19. 01:23
반응형

화면에서 하늘색으로 보이는 View에 터치 이벤트를 달아준다.

터치 이벤트가 발생하면 ScrollView 밑에 있는 TextView에 로그가 남도록 프로그래밍 할 것이다.

 

MainActivity.java

package com.example.event;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        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;
            }
        });
    }

    public void println(String data) {
        textView.append(data + "\n");
    }
}

onCreate 메소드에서 textView를 아이디로 찾아주고 println 이라는 메소드를 생성하여 textView에 로그를 추가하도록 구성하였다.

 

onCreate 메소드에서 view를 아이디로 찾아서 setOnTouchListener 이벤트를 달아준다.

view 파트에 터치가 인식되면 위에서 생성한 println 메소드를 통해 이벤트 내용과 터치 포인터를 로그에 추가한다.

이벤트가 정상 작동하면 true를 return 한다.

반응형
Comments