터치 이벤트
- 앱에서 발생하는 사용자의 터치 이벤트를 처리하고 싶다면 액티비티 클래스에 터치 이벤트의 콜백 함수인
onTouchEvent()
를 선언한다.
- 콜백함수 : 어떤 이벤트가 발생하거나 시점에 도달할 때, 시스템에서 자동으로 호출하는 함수
override fun onTouchEvent(event: MotionEvent?): Boolean {
Log.d("lumine", "Touch Event : ${event.toString()}")
return super.onTouchEvent(event)
}
MotionEvent
객체 안에 터치 종류와 좌표 값이 담겨있다.
action 종류
ACTION_DOWN
: 터치 누를때
ACTION_UP
: 손을 뗄 때
ACTION_MOVE
: 움직일 때
좌표값 얻기
event.x
: 이벤트가 발생한 뷰의 X 좌표
event.rawX
: 화면의 X 좌표
키 이벤트
override fun onKeyLongPress(keyCode: Int, event: KeyEvent?): Boolean {
return super.onKeyLongPress(keyCode, event)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
return super.onKeyDown(keyCode, event)
}
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
return super.onKeyUp(keyCode, event)
}
- 사용자가 키를 누르는 순간에 발생하는 함수
- 소프트 키보드의 값이 아니라 실제 하드웨어 적인 버튼을 눌렀을 때 적용
- 현재는 볼륨조절 버튼, 뒤로가기 버튼 만 지원되어 이벤트가 발생한다. (전원 버튼, 홈버튼, 오버뷰버튼 불가능)
- 뒤로가기 버튼에 대해서만 아래 함수를 사용해서 처리 할 수 있다.
override fun onBackPressed(){
Log.d("lumine", "Back button Pressed")
}