1. 안드로이드 UI 기본
1) UI 설계 개요
2) View
- 안드로이드 앱의 UI를 구성하는 기본 단위
3) 위젯
- View의 서브 클래스, 앱 화면을 구성하는 시각적인 모양을 지닌 UI 요소
- ex. 버튼, 메뉴, 리스트
4) 레이아웃
- ViewGrop의 서브 클래스
- 다른 뷰를 포함하면서 이들을 정렬하는 기능을 지닌 UI 요소
2. 위젯
1) 위젯
- View의 서브 클래스 중 화면의 보이는 것들
- TextView, EditText, Button, ImageView, ImageButton, SurfaceView 등등
2) View
- 모든 UI 컴포넌트들의 부모 클래스
- 모든 UI 컴포넌트들에서 공통적으로 사용 할 수 있음
- id : UI 컴포넌트를 고유하게 식별하는 식별자
android:id = “@id/my_button”
android:id = "@+id/my_button"
layout_width, layout_height
- match_parent : 부모 UI 컴포넌트의 크기에 맞춤
- wrap_content : UI 컴포넌트의 내용물 크기에 맞춤
- px, in, mm : 해상도에 따라 view 크기 달라보임
- dp : 밀도에 독립적인 단위, 해상도와 상관없이 다룰 수 있음
textView
- textface : 텍스트 폰트 (normal, sans, serif, monspace)
- singleLine : 속성값이 true면 텍스트가 위젯의 폭보다 길 때 강제로 한 줄에 출력
EditText
- inputType : 입력 시 허용되는 키보드 타입 + 키보드 행위 설정
- 키보드 타입 : “text”, “phone”, “textEmailAddress”
- 키보드 행위
- “textCapWords” (문장 시작 대문자로)
- “textAutoCorrect”(입력된 단어와 유사한 단어 제시)
- “textMultiLine” (여러 줄 입력 받음)
Button
- 이벤트 처리
- onClick 속성 활용 → 액티비티 클래스에 새로운 메소드 추가
- 객체 이용 → setOnClickListener 활용
ImageView
- 사용방법
- layout 리소스 xml 파일에 ImageView 추가
- 화면에 표시할 이미지 Drawable 리소스에 추가 (대부분 png)
- ImageView의 src 속성에 지정
android:src = "@drawable/android_icon"
- 이미지 확대, 축소
- android:scaleType = “Ceneter” : 이미지 중앙을 ImageView의 중심에 맞춤
- android:scaleType = "fitXY” : 이미지에 상관없이 꽉 차게 보여줌
3. 레이아웃
1) LinearLayout
- 컨테이너에 포함 된 뷰들을 수평, 수직으로 일렬 배치하는 레이아웃
- LinearLayout의 자식으로 배치되는 View 위젯은 오직 한 방향으로만 배치
- 크기와 관계 없이 한 줄로만 배열
- 중첩 X
- layoutWeight : 자식들이 배치될 때 전체 영역 대비 비율의 개념으로 가중치 설정
2) Relative Layout
- 뷰를 서로 간의 위치 관계나 컨테이너와의 위치 관계를 지정하여 배치하는 레이아웃
- RealtiveLayout 자체가 상대적 위치의 기준점으로 사용 가능
- 중첩 O
- 속성
3) Table Layout
- 표 형식으로 차일드를 배치하는 레이아웃
- 자식 View 위젯들을 테이블(행과 열)로 나누어 표시
- layout_height : 항상 wrap_content
- layout_width : 항상 match_parent
4) Frame Layout
- 컨테이너에 포함된 뷰들을 전부 좌상단에 배치하는 레이아웃
- 하나의 자식 View 위젯만 자식으로 추가하면 겹쳐진 형태로 표시
- 가장 최근에 추가한 View 위젯이 가장 상위
5) Constraint Layout
- 제약 조건을 사용해 화면을 구성하는 방법
- 형제 View들 과의 관계를 정의해서 레이아웃 구성
- Releative Layout 보다 유연하고 다양한 기능 제공
- Constraint 분류
4. Margin/Padding/Gravity
1) Margin
- 뷰와 다른 뷰 간의 간격
- layout_margin : 상하좌우로 동일한 마진 설정
- layout_marginLeft, layout_marginRight, layout_marginTop, layout_marginBottom
2) Padding
- padding : 상하좌우로 동일한 패딩 설정 시에 사용
- paddingLeft, paddingRight, paddingTop, paddingBottom
3) Margin & Padding 모두 적용
4) Gravity
- gravity : 해당 뷰 안의 내용물 위치에 대한 정렬 방식 지정
- layout_gravity : 부모 뷰 안에서 해당 뷰의 정렬 방식 지정
5. 스타일 및 테마
1) Style
- View or 창의 모양과 형식을 지정하는 속성 모음
- 레이아웃을 지정하는 xml과 별개인 xml 리소스에 저장
//xml 코드
<TextView
style="@style/RedTextView"/>
2) Theme
- 개별 View가 아니라 전체 Activity or 애플리케이션에 적용되는 스타일
- 스타일이 테마로 적용된 경우 액티비티 or 애플리케이션에 포함된 모든 뷰가 자신이 지원하는 각 스타일 속성 적용
'Android' 카테고리의 다른 글
Selector (0) | 2023.08.08 |
---|---|
Font 변경 (0) | 2023.08.04 |
ImageView 이미지 넣기 (코드) (0) | 2023.08.03 |
registerForActivityResult (1) | 2023.08.03 |
Android Activity와 Intent (3) | 2023.08.02 |