[09. 리소스 활용]
[09-1. 리소스 종류와 특징]
-리소스: 정적인 자원. 변경되지 않는 정적 콘텐츠. 리소스로 분리해서 외부 파일로 만듬
-리소스 구분 : 앱 리소스/ 플랫폼 리소스
[앱 리소스 사용]
-앱 리소스 :앱 개발자가 res 디렉토리에 직접 리소스 추가하는 것
-res 디렉토리 아래에 개발자가 임의로 이름붙인 디렉토리는 X. 하위 티렉터리 추가 X
-리소스 그대로 사용 X. R.Java 파일에 식별자로 등록해서 이용
[앱 리소스 종류]
animator | 속성 애니메이션 XML |
anim | 트윈 애니메이션 XML |
color | 색상 상태 목록 정의 XML |
drawable | 이미지 리소스 |
mipmap | 앱 실행 아이콘 리소스 |
layout | 레이아웃 XML |
menu | 메뉴 구성 XML |
raw | 원시 형태로 이용되는 리소스 파일 |
values | 단순값으로 이용되는 리소스 |
xml | 특정 디렉터리가 정의되지 않은 나머지 XML 파일 |
font | 글꼴 리소스 |
▶[레이아웃 리소스] - layout 디렉터리
-화면 구성 레이아웃 XML 파일 작성 디렉터리
▶[이미지 리소스] - drawable 디렉터리
-이미지 리소스 저장 디렉터리
-PNG/JPG/GIF/9.PNG/XML로 작성한 이미지 저장 가능
<XML 이미지 만드는 태그>
<shape> | 도형 타입 지정 |
<corners> | 둥근 모서리 그릴 때 사용 |
<gradient> | 그라데이션 색상 지정 |
<size> | 도형 크기 지정 |
<solid> | 도형 색상 지정 |
<stroke> | 도형 윤곽선 지정 |
▶[실행 아이콘 리소스] - mipmap 디렉터리
-앱 설치 시 실행 아이콘 이미지 리소스 저장되는 디렉터리
▶[값 리소스] - values 디렉터리
-값으로 이용되는 리소스 저장 디렉터리
-문자열/색상/크기/스타일/배열 등의 값을 XML로 저장
-values 띠렉토리 리소스 파일은 파일명이 R인 파일에 식별자로 등록X
-리소스 파일에 값을 지정한 태그와 name 속성값이 R 파일 식별자로 등록됨
<문자열 리소스 등록> : string 태그로 등록
<resource>
<string name=“app_name”>Test9</string>
<string name=“txt_data1”>Hello</string>
<string name=“txt_data2”>World</string>
</resource>
➀ 사용 : Xml에서 문자열 리소스 사용
<TextView
android:id=“@+id/textView”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“@string/txt_data1”/>
➁ 사용 : 코드에서 문자열 리소스 사용
binding.textView.text=getString(R.string.txt_data2)
<색상 리소스 등록> : color 태그로 등록
<resources>
<color name= “txt_color”>#FFFF00</color>
<color name= “txt_bg_color”>#FF0000</color>
</resources>
<크기 리소스 등록> : dimen 태그로 등록
<resources>
<dimen name=“txt_size”>20dp</dimen>
</resources>
<스타일 리소스 등록>: style 태그로 등록
-스타일 속성은 뷰에 설정되는 여러 속성을 한 번에 적용하거나 여러 뷰에 중복되는 속성을 스타일로 정의해 재사용 용도로 사용됨
<resources>
<style name = “MyTextStyleSub” parent=“MyTextStyle”>
<iten name = “android:textSize”>@dimen/txt_size</item>
. . .
</resources>
-다른 스타일 상속받아 재사용 가능
▶[색상 리소스] - color 디렉터리
-<color> 태그로 등록할 경우 : 색상 하나를 리소스에 등록해 사용
- color 디렉토리로 등록할 경우 :특정 뷰의 각 상태에 따른 색상 지정 편리
▶[폰트 리소스] - font 디렉터리
-글꼴 리소스 지정. TTF/OTF 파일 저장한 후 글꼴 적용할 뷰에서 이용하면 됨
[플랫폼 리소스 사용]
-플랫폼 리소스 : 안드로이드 플랫폼이 제공하는 리소스
-플랫폼 리소스도 R 파일에 등록된 식별자로 이용 가능.
단 , 앱의 R파일이 아니라, android.R 파일에 등록되어 있음
-플랫폼 리소스를 XML에서 이용할 때는 @android:패턴으로 사용 가능
<XML에서 플랫폼 리소스 사용>
<ImageView
android:src=“@android:drawable/alert_dark_frame”/>
[09-2. 리소스 조건 설정]
[리소스 조건 설정]
-어떤 리소스를 특정 환경에서만 적용되도록 설정하는 것
-파일명을 똑같이 지정하되, 디렉터리 구분. 리소스 디렉토리 이름 뒤 (-)리소스 조건 설정
-리소스 디렉터리명에 조건 명시하면 각 환경에 맞는 리소르를 알아서 적용할 수 있다
-하나의 디렉토리에 여러 조건 지정 가능 (단, 조건 나열 순서 지킬 것)
[화면 회전에 대응]
-리소스 조건을 이용 -> 화면 회전 대응 UI 만들 수 O
-가로/세로 출력할 레이아웃 XML 파일을 똑같은 파일명으로 각각 만듬
-단, 디렉터리명에 조건 명시하여 기본값과 특정 상황 실행 UI 구분해놓음
[국제 언어 제공]
-리소스 조건을 이용 -> 각국 언어 제공
-문자열 리소스 values 디렉토리 리소스에 등록하며, name값 똑같이 함
-단, 두 파일 리소스 조건 명시한다르 디렉토리에 만듬
[09-3. 폰 크기 호환성]
-안드로이드는 다양한 크기로 출시되므로 앱이 폰 크기 호환되도록 구현할 것
-안드로이드 시스템은 자체적으로 기기 크기 구분하여 콘텐츠 크기를 자동으로 맞추지만
단, 콘텐츠 크기 논리적 단위 사용하여 지정할 때만 가능
-물리적 단위로 지정한 경우, 시스템 도움 못 받음
[안드로이드 기기 크기 구분]
ldppi | 저밀도 화면. ~120dpi |
mdpi | 중밀도 화면. ~160dpi |
hdpi | 고밀도 화면. ~240dpi |
xhdpi | 초고밀도 화면. ~320dpi |
xxhdpi | 초초고밀도 화면 ~480dpi |
xxxhdpi | 초초초고밀도 화면 ~640dpi |
[크기 지정 논리적 단위]
dp | 스크린의 물리적 밀도에 기반 둔 단위 |
sp | dp와 유사. 글꼴 크기에 적용 |
[크기 지정 물리적 단위]
pt (points) | 스크린 크기의 1/72 = 1pt |
px | 픽셀 |
mm | 밀리미터 |
in | 인치 |
[화면 정보 가져오기]
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowMetics : WindowMetrics = windowManaget.currentWinodwMetics
binding.textView.text = “width: ${windowMetrics.bounds.width()},
“height:${windowMetrics.bounds.height()}”
. . .
-API 30버전부터는 WindowMetrics 사용
[09-4. 메신저 앱의 인트로 화면 만들기] : 실습
<세로 화면> : 기기 언어 영어
<가로 화면> : 기기 언어 영어
<세로 화면> : 기기 언어 한국어 설정
[참고] : Do It 안드로이드 앱 프로그래밍 with 코틀린 |
'App(앱)_관련 공부 모음 > [교재] Andorid App_Kotlin 기반' 카테고리의 다른 글
11. [제트팩 라이브러리] (0) | 2022.03.14 |
---|---|
10. [다이얼로그와 알림 이용] (0) | 2022.03.10 |
08. [사용자 이벤트 처리하기] (0) | 2022.03.09 |
07. [뷰를 배치하는 레이아웃] (0) | 2022.03.08 |
06. [뷰를 이용한 화면 구성] (0) | 2022.03.07 |