| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- HTTP
- android studio
- mac permission denied
- 앱
- chown -R
- kotlin-android-extensions
- mac os 권한
- login_btn
- import
- 앱개발
- Kotlin
- 컴공
- 맥북 권한
- chown
- import안됨
- chmod
- API
- 코틀린
- dart
- App
- flutter
- Today
- Total
Milan Dev
kotlin: 레이아웃 실전 본문
이번엔 직접 디자인을 보고 레이아웃을 만들어보자
디자인은 freefigma에서 구했고 figma.com에서 디자인의 세부정보를 추출해서 사용하면 될 것 같다.

freefigma에서 구한 샘플이다 figma.com에서 이녀석의 정보를 추출하고 똑같이한번 만들어보자
우선 배경부터! 사자배경은

배경클릭 -> 우측 하단에 Export 클릭 -> 'Export 배경이름' 누르고 다운받기
이러면 원하는 디장인의 배경을 png파일로 얻을 수 있다.
음 일단 우리가 만들 화면은 배경위에 텍스트와 버튼이 위에서 아래로 일렬로 이루어져 있기 때문에 리니어 레이아웃을 한번 사용해보자.


음 적용이 잘 됐다. 이제 레이아웃을 리니어로 바꿔주고 실행해보자

잘 되긴 하는데 이거 저 위에 상태바가 너무 거슬린다
상태바를 투명하게 만들려면? 응 구글링~

음 태마에다가 저 코드를 써보라는군요... 고마워요 스오플! (태마는 res -> values -> themes에 xml파일로 있다.)

적용이 잘 됐구만!!
사자머리쪽에 택스트도 써보자

굿! 이제 밑에 버튼 2개도 같이 넣어주자
버튼이 직각이 아니라 모서리가 둥글둥글하다.. 모서리는 어떻게 깍지?
android xml corner radius 검색 후 스오플의 힘을 빌려서...

으음 저기 보이는 코드로 버튼 모양을 둥글게 깎을 수 있다.

버튼 모양 틀을 만들자 테두리 굵기, 모서리 깎임정도를 설정할 수 있다. 음 그리고 버튼 색을 넣어야 되는데..
음? 첫번째 버튼 자세히 보니 그냥 녹색이 아니라 약간 그라데이션이 들어갔다... 그러면 이 버튼은 솔리드가 아니라 gradient로 표현해야겠다.

좌 우측 색을 확인하고! 그라데이션이 대각선으로 이루어졌으니 각도는 45!

좋다 이제 이 백그라운드를 버튼에 적용하자
버튼과 처음에 만든 텍스트 사이에 빈 뷰를 집어넣고 가중치를 설정하여 공간을 띄어준다.
자 했던거 반복이다 버튼 두개 만들고 패딩이랑 띄기 살짝 해주고! 텍스트 다시 쓰고 로그인 버튼도 xml파일 추가해서 만들어주면!

똑같이 만들기 성공! 작동도 잘된다 ㅎㅎ
소스코드는 여기
레이아웃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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:background="@drawable/bg"
android:weightSum="1"
android:paddingHorizontal="20dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:text="Get the lift you want! \n Save more money."
android:textColor="@color/white"
android:textSize="20dp"
android:textStyle="bold"
android:textAlignment="center"
/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0.85"
/>
<Button
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="Create free account"
android:textAllCaps="false"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold"
android:background="@drawable/rounded_corner"
/>
<Button
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="Continue with facebook"
android:textAllCaps="false"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold"
android:background="@drawable/rounded_corner_bule"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alreay have an account?"
android:textColor="#fff"
android:textSize="20dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
/>
<Button
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="Login"
android:textAllCaps="false"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold"
android:background="@drawable/rounded_corner_while_transparent"
/>
</LinearLayout>
그라데이션 버튼 xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="45"
android:endColor="#2DC897"
android:startColor="#7EF192"
android:type="linear"
/>
<!-- <solid android:color="#ffffffff"/>-->
<!-- <stroke android:width="0dp"-->
<!-- android:color="#ff000000" />-->
<!-- <padding android:left="1dp"-->
<!-- android:top="1dp"-->
<!-- android:right="1dp"-->
<!-- android:bottom="1dp" />-->
<corners android:radius="30dp" />
</shape>
나머지는 생략! ㅋㅋㅋㅋ
다음엔 클릭이벤트 해봅시다
'Android' 카테고리의 다른 글
| kotlin: 커스텀 로티애니메이션 적용하기 (0) | 2022.08.24 |
|---|---|
| kotlin: 클릭이벤트 만들기, 리스너 알아보기 (1) | 2022.08.23 |
| kotlin: 레이아웃(layout) (0) | 2022.08.21 |
| kotlin: 생명주기, 그라데이션 뷰 etc (0) | 2022.08.20 |
| kotlin: 기본 튜토리얼 (0) | 2022.08.19 |