티스토리 뷰
Resource
• 반복적으로 사용할 수 있는 자원
• res 폴더에 저장
- 사용 방법 : @리소스종류/리소스명
• 종류
- drawable, layout, mipmap, values...
1. drawable
• 이미지 리소스 파일
- .jpg, .png, ... : 복잡한 이미지
ex) dog.jpg
- .xml
- 간단한 이미지(도형)
- 변경 가능한 이미지
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="100dp"
android:height="100dp" />
<stroke
android:width="10dp"
android:color="@color/teal_200" />
<solid android:color="@color/purple_200" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/dog"
android:state_pressed="true" />
<item
android:drawable="@drawable/ic_launcher_foreground"
android:state_pressed="false" />
</selector>
2. layout
• 화면을 구성하는 xml.
• 코드(코틀린 & 자바)에서도 사용할 수 있고, xml 안에서 다른 xml을 불러오는 것도 가능하다.
3. mipmap
• 애플리케이션의 아이콘
ex) AndroidManifest.xml
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
- 동일한 아이콘을 해상도 별로 여러 장을 준비할 수 있다.
- 안드로이드 OS가 기기의 해상도에 적합한 이미지를 알아서 선택한다.
4. values
• colors : 반복적으로 사용하는 색깔을 관리
- 우리가 background 색을 적용할 때 사용했던 @color/purple_200 등의 색이 여기에 등록되어 있다.
- 투명도 + RGB(Red, Green, Blue)의 조합으로 색을 표현한다.
- 16진수로 색상 코드를 나타낸다.
ex) 검정색 : #FF000000 -> 투명도 FF (완전 불투명) + Red 00 + Green 00 + Blue 00
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="my_color">#FFABCDEF</color> <!-- my_color 추가 -->
</resources>
• string : 반복적으로 사용하는 문자열을 관리
- 문자열을 따로 관리하면 번역 작업 등에 편하다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">FastCampus</string>
<string name="my_string">h_json 블로그</string>
</resources>
• themes : 안드로이드는 기본으로 필요한 컬러를 테마로 정의해놓음.
- 하지만 내가 의도한 컬러가 아니기 때문에 잘 사용하지 않는다.
• value 사용
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/my_color"
android:text="@string/my_string" />
</androidx.appcompat.widget.LinearLayoutCompat>
이 글은
패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'📱 Android > 🔍 UI' 카테고리의 다른 글
[Android/UI] 14. EditText (0) | 2022.11.01 |
---|---|
[Android/UI] 12. Scroll View(스크롤 뷰) (0) | 2022.10.19 |
[Android/UI] 11. Gravity(그래비티) (0) | 2022.10.19 |
[Android/UI] 10. Frame Layout(프레임 레이아웃) (0) | 2022.10.19 |
[Android/UI] 9. Constraint Layout(컨스트레인트 레이아웃) (0) | 2022.10.17 |