이마닷의 블로그

[android-Java] View의 OnTouchListener 본문

javascript

[android-Java] View의 OnTouchListener

움나나움 2022. 2. 3. 10:32

View 클래스의 메소드 중, 해당 View 영역의 터치 동작을 감지할 수 있는 OnTouchListener에 대한 내용을 정리한다.

 

다양한 touch 동작을 인지하기 위해서는 기본적으로 다음과 같은 코드의 작성이 필요하다.

1. 우선 MainActivity의 onCreate 메소드 내에서 사용할 view 객체를 id로 불러온다.

2. 불러온 view 객체의 setOnTouchListener 메소드를 작성하고,

3. 그 안에 View 클래스의 OnTouchListener 인터페이스를 새로 선언해 인자로 넣는다.

4. OnTouchListener 안에서 @Override 어노테이션을 사용해 onTouch 메소드를 새롭게 정의한다.

public class MainActiviy extends AppCompatActivity {
    
    View v;

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

        v = findViewById(R.id.v);
        
        v.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 == event.ACTION_DOWN) {
                	...
                } else if (action == event.ACTION_MOVE) {
                	...
                } else if (action == event.ACTION_UP) {
                	...
                }
                ...
                return true;
            }
        });
}

이 때 onTouch의 인자로 들어오는 MotionEvent는 getAction() 메소드를 통해서 얻을 수 있는 action이라는 값을 갖는데, 이는 일종의 enum 타입처럼 쓰이는 int 타입의 final 변수이다. event.ACTION_DOWN(터치하기), event.ACTION_MOVE(터치한 상태로 움직이기), event.ACTION_UP(터치 후 화면에서 손 떼기) 등의 값이 존재하고, 화면 상의 터치 움직임에 따라 값을 반환한다.

'javascript' 카테고리의 다른 글

[React] React.js에서 사용하는 기본 개념  (0) 2022.03.05
Comments