안녕하세요~ 심효근이에요!
오늘은 정말 날씨가 여태까지와는 다르게 후끈후끈하죠?
여름이 오는듯한 착각도 들었답니다 ㅎㅎ...
뭐 아무튼 각설하고!
오늘은 LinearLayout을 이용한 안드로이드 레이아웃을 짤거에요!
안드로이드에서 UI 화면을 구성할 때, View 위젯의 배치를 위한 컨테이너 역할을 하는 ViewGroup인
Layout 클래스는 그 종류가 매우 다양해요! 오늘은 그 여러 Layout클래스 중 하나인 Linear Layout(선형 레이아웃)을 배워볼거에요!
일단 안드로이드 스튜디오에 들어가서 xml창을 켜줍니다.
여기에서
이렇게 짜봅시다!!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
이게 LinearLayout이에요!
LinearLayout은 모든 자식들이 일렬로 정렬되는 뷰그룹이에요. 정렬되는 방향은 수평 혹은 수직이 될 수 있고요,
orientation 속성으로 레이아웃의 방향을 수평 혹은 수직으로 지정해줄 수 있습니다!
android:orientation="vertical"
이렇게 말이죠!
그리고 가중치를 기반으로 하고있기에! layout_weight를 사용합니다!
layout_weight 레이아웃 매개변수는 LinearLayout에게 자식들 배치공간을 알려줍니다.
먼저 자식뷰들의 width (수직일 경우는 height)를 기준으로 모든 뷰들을 배치합니다.
그 후 남는 공간이 있으면 weight 값을 기준으로 공간을 할당합니다! 이때 weight 값은 비율이에오!!!!
android:layout_weight="2"
이렇게 말이죠!
이러한 여러 속성들이 LinearLayout에는 많은데!
이를 잘 사용하면
이러한 형식의 계산기 배열도 가능합니다!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
이게 소스입니당!
그리고 조금 더 나아가면
이런식으로 종이용지도! 레이아웃으로 표현하실 수 있습니다!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
여태까지 LinearLayout에 대해 알아봤습니다.
리니어 레이아웃같은 경우는 실제로도 자주 쓰이는 뷰이니 확실히 집고 넘어가는게 좋아요><!!!
다음 시간에는 드디어 코틀린 소스를 작성해 볼거에요!! (필자는 자바를 혐!오!하기에 Kotlin으로 강의할 예정임)
바로 버튼을 사용해볼 예정이에요! 와~~~~
그럼 다음시간에 만나요!
'Android > Android Lecture' 카테고리의 다른 글
안드로이드 강의 6. Handler를 이용한 Splash화면 구현 (2) | 2019.04.08 |
---|---|
안드로이드 강의 5. Intent와 Activity 이동 (5) | 2019.04.08 |
안드로이드 강의 4. Button, OnClickListener, Toast 메시지 (1) | 2019.04.08 |
안드로이드 강의 2. SDK설치부터 첫 앱 만들기! (0) | 2019.04.08 |
안드로이드 강의 1. 안드로이드 스튜디오 설치! (1) | 2019.04.08 |