- 요약 -
1. 5개 레이아웃의 계층도는 다음과 같다.
java.lang.Object |
android.view.View |
android.widget.ViewGroup |
LinearLayout | RelativeLayout | GridLayout | FrameLayout |
android.widget.LinearLayout |
android.widget.TableLayout |
2. 리니어레이아웃의 주요 속성은 다음과 같다
- orientation : 레이아웃 안에 배치할 위젯의 수직 또는 수평 방향을 설정한다.
- gravity : 레이아웃 안에 배치할 위젯의 정렬 방향을 좌측, 우측, 중앙 등으로 설정한다.
- padding : 레이아웃 안에 배치할 위젯의 여백을 설정한다.
- layout_weight : 레이아웃이 전체 화면에서 차지하는 공간의 가중값을 설정한다.
- baselineAligned : 레이아웃 안에 배치할 위젯을 보기 좋게 정렬한다.
3. 렐러티브레이아웃 안의 위젯 속성 중에서 부모(레이아웃)의 어느 위치에 배치할지를 결정하는 속성에는 layout_alignParentBottom을 비롯해 일곱 가지가 있다. 또한 다른 위젯의 특정한 곳에 배치하는 속성에는 layout_above를 비롯해 아홉 가지가 있다.
4. 테이블레이아웃은 위젯을 표 형태로 배치할 때 주로 사용하며 행의 수는 <TableRow>로 결정된다. 테이블레이아웃에서 설정하는 속성에는 layout_span, layout_column, stretchColumns가 있고, 테이블레이아웃 안의 위젯에 설정하는 속성은 layout_span, layout_column이다.
5. 그리드레이아웃은 테이블레이아웃보다 좀 더 직관적으로 구성할 수 있으며, 행 단위의 확장도 가능하여 다양한 형태의 표를 만들 수 있다.
6. 프레임레이아웃은 레이아웃 안의 위젯을 왼쪽 상단부터 겹쳐서 출력해준다.
- 연습문제 -
1. 레이아웃의 다섯 가지 종류에 대해 간략히 설명하시오.
LinearLayout | 위젯을 수평, 수직 방향으로 차례대로 배치하는 방식의 레이아웃 |
RelativeLayout | 레이아웃의 특정 위치를 지정하여 배치하거나 다른 위젯의 상대적인 위치를 지정하는 레이아웃 |
GridLayout | 테이블 레이아웃과 비슷하며 행 또는 열을 확장하여 다양하게 배치 가능한 레이아웃 |
TableLayout | 행과 열의 개수를 지정한 테이블 형태로 위젯을 배열하는 레이아웃 |
FrameLayout | 여러개의 위젯을 배치한 후 상황에 따라서 필요한 위젯을 보이는 방식에 주로 활용되는 레이아웃 |
2. gravity 속성과 layout_gravity 속성의 차이를 간략히 설명하시오.
gravity | 자신에게 포함된 자식(위젯, 레이아웃 등)을 어디에 위치시킬지 결정 |
layout_gravity | 자신의 위치를 부모(레이아웃 등)의 어디에 위치시킬지 결정 |
3. 렐러티브레이아웃에서 위젯의 배치를 위해 설정할 수 있는 XML 속성에 대해 설명하시오.
XML 속성 | 레이아웃 기준 | XML 속성 | 특정 위젯 기준 |
layout_alignParentLeft | 왼쪽 | toLeftOf | 왼쪽방향 |
layout_alignParentRight | 오른쪽 | toRightOf | 오른쪽방향 |
layout_alignParentTop | 상단 | above | 위방향 |
layout_alignParentBottom | 하단 | below | 아래방향 |
layout_centerVatical | 중간(수직방향) | alignTop | 상단 |
layout_centerInParent | 정중앙 | alignBaseline | 중간(수직방향) |
layout_centerHorizontal | 중간(수평방향) | alignBottom | 하단 |
alignLeft | 중간(수평방향) 기준 왼쪽 | ||
alignRight | 중간(수평방향) 기준 오른쪽 |
4. 오른쪽 화면을 XML 파일로 만드시오. 단, 리니어레이아웃만 사용하고 각 레이아웃의 색상을 다르게 설정한다.
1) 먼저 하늘색 바탕색의 레이아웃과 빈 레이아웃(수평설정)을 생성합니다
2) 빈 레이아웃 안에 검정색 바탕색(수직설정)의 레이아웃과 또다른 빈 레이아웃(수평설정)을 생성합니다.
3) 또 다른 빈 레이아웃 안에 3가지 색상의 레이아웃을 추가 해 줍니다.
4) 마지막으로 검정색 바탕색의 레이아웃에 색깔을 없개고, 두개의 레이아웃(검정색, 노란색)을 추가해 줍니다.
5. 오른쪽 화면을 XML 파일로 만드시오. 단, 렐러티브레이아웃에 버튼을 사용하고 중앙에 있는 <기준 위젯>의 상대적인 위치로 다른 위젯을 배치한다. <기준 위젯>의 크기는 가로세로 150dp이다.
(기준위젯, 1번, 2번)
(3번, 4번, 5번, 6번)
6. 다음 화면을 프로젝트로 완성하시오. 리니어레이아웃을 이용하여 XMl 코드로 만들고, 각 레이아웃을 클릭하면 레이아웃의 너비와 높이가 토스트 메시지로 출력되도록 Kotlin으로 프로그래밍한다. (안쪽 레이아웃은 모두 정사각형이며, 크기는 안쪽 레이아웃부터 50dp, 150dp, 250dp이다. 각 레이아웃의 색상을 다르게 한다.)
[activity_main.xml]
[MainActivity.kt]
★화면 해상도 계산법 |
getWidth(), getHeigth()는 px값을 반환합니다. [dpi] |
dpi확인은 [Tools] - [AVD Manager]를 확인해 보면 됩니다.
7. 다음 화면을 프로젝트로 완성하시오. XML파일 없이 Kotlin 코드만 이용하고 각 레이아웃의 색상을 다르게 한다.
(하는중.... 혹시 하신분이 있다면 댓글 부탁드립니다.)
(레이아웃 중첩부분이 잘 안되네요....:(()
'책 요약하기 > 코틀린을 활용한 안드로이드 프로그래밍' 카테고리의 다른 글
#7.메뉴와 대화상자 2021-02-05 (0) | 2021.02.05 |
---|---|
#6. 고급 위젯 다루기 2021-02-03 (0) | 2021.02.03 |
#4. 기본 위젯 익히기 2021-01-28 (0) | 2021.01.28 |
#3. 안드로이드를 위한 기본적인 Kotlin 문법 2021-01-27 (0) | 2021.01.27 |
#2. 안드로이드 프로그램 개발 과정 및 간략한 구성 2021-01-26 (0) | 2021.01.26 |