반응형
이벤트 종류
터치 이벤트 - 화면을 손가락으로 터치
키 이벤트 - 키패드, 하드웨어 버튼을 ㅜㄴ름
제스처 이벤트 - 터치 이벤트 도중 일정 패턴의 움직임
포커스 - 뷰 객체가 포커스를 받거나 잃음
화면 방향 변경 - 화면 방향(가로, 세로) 변경
package com.example.a11_sampleevent;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import static java.sql.DriverManager.println;
public class MainActivity extends AppCompatActivity {
// https://velog.io/@hanna2100/안드로이드-터치-이벤트의-흐름
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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 == event.ACTION_DOWN) {
println("손가락 눌림 : " + curX + ", " + curY);
} else if (action == event.ACTION_MOVE) {
println("손가락 움직임 : " + curX + ", " + curY);
} else if (action == event.ACTION_UP) {
println("손가락 뗌 : " + curX + ", " + curY);
}
return true;
}
}); // view.setOn...
// ////////////////////////////////////////////////////////////////////////////////
// 제스처 디텍터 객체 선언
GestureDetector detector;
detector = new GestureDetector(this, new GestureDetector.OnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
// 화면이 눌림
println("onDown() 호출됨");
return true;
}
@Override
public void onShowPress(MotionEvent e) {
// 화면이; 눌렸다 떼어짐
println("onShowPress() 호출됨");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// 화면이 한 손가락으로 눌렸다 떼어짐
println("onSingleTapUp() 호출됨");
return true;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// 화면이 눌린 채 일정 속도와 방향으로 움직임
println("onScroll() 호출됨 : " + distanceX + ", " + distanceY);
return true;
}
@Override
public void onLongPress(MotionEvent e) {
// 화면이 오랫동안 눌림
println("onLongPress() 호출됨");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// 화면이 눌린 채 가속도를 붙여 손가락을 움직였다 뗌
println("onFling() 호출됨 : " + velocityX + ", " + velocityY);
return true;
}
}); // detector = new Gesture...
View view2 = findViewById(R.id.view2);
view2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 터치 이벤트를 detector에게 넘긴다
detector.onTouchEvent(event);
return true;
}
});
}
public void println(String data) {
textView.append(data + "\n");
}
}
반응형
'안드로이드' 카테고리의 다른 글
단말 방향 전환 이벤트 (0) | 2021.10.11 |
---|---|
키 이벤트 (0) | 2021.10.11 |
터치 이벤트 (0) | 2021.10.11 |
SMS 입력 화면 만들고 글자 수 표현 (0) | 2021.10.11 |
두 개의 이미지뷰에 이미지 번갈아 보여주기 (0) | 2021.10.11 |