라벨이 Android인 게시물 표시

[Android] 08. 사용자 이벤트 처리하기

이미지
 사용자 이벤트 처리 목차 08-1. 터치와 키 이벤트 08-2. 뷰 이벤트 [실습] 시계 앱의 스톱워치 기능 만들기 08-1. 터치와 키 이벤트 ✅ 터치 이벤트 터치 이벤트의 콜백 함수인 onTouchEvent()를 선언한다. 매개변수는 MotionEvent 객체이며, 이 객체에 터치의 종류와 발생 지점(좌푯값)이 담긴다. 터치 이벤트의 종류 ACTION_DOWN: 화면을 손가락으로 누른 순간의 이벤트 ACTION_UP: 화면에서 손가락을 떼는 순간의 이벤트 ACTION_MOVE: 화면을 손가락으로 누른 채로 이동하는 순간의 이벤트 터치 이벤트 발생 좌표 얻기 onTouchEvent() 함수의 매개변수인 MotionEvent 객체로 획득 x: 이벤트가 발생한 뷰의 X좌표 y: 이벤트가 발생한 뷰의 Y좌표 rawX: 화면의 X좌표 rawY: 화면의 Y좌표 ✅ 키 이벤트 사용자가 폰의 키를 누르는 순간에 발생한다. 콜백 함수 onKeyDown: 키를 누른 순간의 이벤트 onKeyUp: 키를 떼는 순간의 이벤트 onKeyLongPress: 키를 오래 누르는 순간의 이벤트 첫 번째 매개변수는 키의 코드이며 이 값으로 사용자가 어떤 키를 눌렀는지 식별 키 이벤트가 발생하는 키는 폰에서 제공하는 소프트 키보드의 키를 의미하지 않는다. 안드로이드 시스템 버튼도 키로 취급하므로 이 버튼의 이벤트를 처리한다. 뒤로가기 버튼 이벤트에는 앞에서 살펴본 onKeyDown()이나 onKeyUp()함수를 이용할 수도 있지만 onBackPressed()함수를 이용할 수도 있습니다. 제스처 내비게이션을 사용하고 있다면 사용자 제스처로 뒤로 가기를 하면 <뒤로가기>버튼을 누른 것과 같다. 그러므로 사용자 제스처 뒤로가기도 onKeyDown()함수를 선언해 이벤트 처리가 가능하다. 뒤로가기 버튼 이벤트에는 onBackPressed() 함수를 이용할 수도 있다. API Level 33에서 뒤로가기 버튼 이벤트 처리 함수인 onBackPressed()함수는 deprecat...

[Android] 07. 뷰를 배치하는 레이아웃

이미지
  뷰를 배치하는 레이아웃 목차 07-1 선형으로 배치 - LinearLayout 07-2 상대 위치로 배치 - RelativeLayout 07-3 겹쳐서 배치 - FrameLayout 07-4 표 형태로 배치 - GridLayout 07-5 계층 구조로 배치 - ConstraintLayout 07-6 전화 앱의 키패드 화면 만들기 07-1 선형으로 배치 - LinearLayout ✅ LinearLayout 배치 규칙 LinearLayout은 뷰를 가로나 세로 방향으로 나열하는 레이아웃이다. orientation 속성에 horizontal이나 vertical값으로 방향을 지정한다. LinearLayout을 중첩할 수 있다. 레이아웃 클래스도 뷰이므로 다른 레이아웃 클래스에 포함할 수 있다. ✅ 여백을 채우는 layout_weight 속성 뷰 1개로 전체 여백 채우기 여백을 뷰로 채우려면 layout_weight 속성을 사용한다. 뷰 여러 개로 여백을 나누어 채우기 layout_weight 속성에 지정한 숫자는 가중치 layout_weight 값을 각각 1과 3으로 선언했다면 가로 여백을 각각 1/4만큼, 3/4만큼 나우어 차지 중첩된 레이아웃에서 여백 채우기 여백 채우기로 뷰의 크기 설정하기 ✅ 뷰를 정렬하는 gravity, layout_gravity 속성 뷰에 gravity와 layout_gravity 속성 적용하기 gravity속성의 정렬 대상은 콘텐츠 layout_gravity는 뷰 자체를 정렬하는 속성 레이아웃 gravity 속성 적용하기 07-2 상대 위치로 배치 - RelativeLayout ✅ RelativeLayout 배치 규칙 상대 뷰의 위치를 기준으로 정렬하는 레이아웃 android:layout_above : 기준 뷰의 위쪽에 배치 android:layout_below : 기준 뷴의 아래쪽에 배치 android:layout_toLeftOf : 기준 뷰의 왼쪽에 배치 android:layout_toRightOf : 기준 뷰의 오른...