Front-End/Kotlin

[Kotlin] Resourse의 종류와 특징

psy_er 2024. 4. 20. 02:59
728x90

[Kotlin] Resourse의 종류와 특징

 

< 앱 리소스 사용하기 >

리소스 디렉터리명은 고정,

리소스 파일명은 values에 추가하는 파일을 제외하고는 모두 자바의 이름 작성 규칙 준수한다.

알파벳 대문자를 사용할 수 없다.

 

레이아웃 리소스 - layout 디렉터리 

이미지 리소스 - drawable 디렉터리 (PNG,JPG,DIF, 9.PNG XML 파일)

실행 아이콘 리소스 - mipmap 디렉터리

값 리소스 - values 디렉터리

문자열, 색상, 크기, 스타일 배열 등의 값을 XML로 저장

values 디렉터리의 리소스 파일은 파일명이 R인 파일에 식별자로 등록되지 않고

리소스 파일에 값을 지정한 태그의 name 속성값이 등록, 스타일 리소스는 style 태그로 등록

스타일 속성은 뷰에 설정되는 여러 속성을 스타일에 등록하여 한꺼번에 적용

 

 

리소스에 등록

<resources
   <string name="app_name"> Test 합니다. 화이팅 </string>
</resources>

<resources
   <color name="app_color">#FFFF00 </color>
</resources>

<resources
   <style name="MyTextStyle">
      <item name="android:textSize">@dimen/txt_size</item>
      <item name="android:textColor">@color/txt_color</item>
   </style>
</resources>

 

XML에서 리소스 사용

<TextView
   android:text="@string/txt_data1"/>
   
<TextView
   android:background="@color/txt_bg_color"
   android:textColor="@color/txt_color"/>
   
<TextView
   style="@style/MyTextStyleSub"/>

 

<플랫폼 리소스 사용하기>

 

안드로이드 플랫폼이 제공하는 리소스

android.R이라는 플랫폼 라이브러리의 R파일에 등록

 

코드에서 플랫폼 리소스 사용

binding.imageView.setImageDrawable(ResourcesCompat.getDrawable(resources, android.R.drawable.alert_dark_frame),null)
binding.textView.text = getString(android.R.string.emptyPhoneNumber)

 

XML에서 플랫폼 리소스 사용

<ImageView
   android:src="@android:drawable/alert_dark_frame"/>

<TextView
   android:text="@android:string/emptyPhoneNumber"/>

 

< 리소스 조건 설정 >

리소스를 특정 환경에서만 적용되도록 설정

기기별 실행 아이콘 크기

리소스 디렉터리 이름에서 붙임표(-) 뒤의 단어가 리소스의 조건

mipmap-mdpi 디렉터리는 mdpi라는 조건

 

 

< 화면 회전에 대응하기 >

방향에 따라 화면을 다르게 제공

리소스 조건으로 설정하여 처리

layout 폴더에 activity_main.xml, activity_main.xml(land) 두 파일 생성

 

 

< 리소스의 종류와 특징 >

폴더 상단에 Android대신 Packages에 drawable을 보면 여러 이미지가 저장되어 있는것을 확인 할 수 있다. 안드로이드 자체 내에서 많이 사용하는 리소스를 제공한다.

 

 

<국제 언어 제공하기>

리소스 문자열을 각국 언어로 제공

파일을 여러개 만들어서 각 언어에 맞는 리소스 문자열을 담고 어느 XML 파일을

적용해야 하는지 리소스 디렉터리명으로 지정

 

 

< 리소스 조건 설정이란? >

리소스를 특정 환경에서만 적용되도록 해상도를 설정하는 것이다.

기기별 실행 아이콘 크기를 설정한다.

 

res/mipmap/ic_launcher 에서 확인 가능하다. 파일 구조가 다른 것을 볼 수 있다.

 

야간모드 : night(야간), notnight(주간)

화면 픽셀 밀도 : idpi(120), mdpi(160), hdpi(240), xhdpi(320), xxhdpi(480), xxxhdpi(640), nodpi(크기 조정 안함), tvdpi, anydpi, nnndpi

언어 및 지역 : en, ko-rKR

 

 

< 화면 회전에 대응하기 >

- 방향에 따라 화면을 다르게 제공

- 리소스 조건으로 설정하여 처리

 

activity_main.xml / activity_main.xml(land)

 

res에 오른쪽 마우스를 클릭해 new , android resource 에서 layout 파일 만들기,

Available qualifiers의 Orientation 선택 default 값은 portrait이다.

Landscape 설정을 선택하기.

 

 

< LandScape인 경우 >

LandScape인 경우 새로운 배치를 적용해야 한다.

LandScape인 경우를 추가하면 activity_main이 두개 존재하게 된다.

- activity_main.xml

- activity_main.xml(land)

 

 

< 애뮬레이터 언어 설정 >

System/language/한국어 추가

드래그해서 우선순위 변경 가능

 

 

< 어플리케이션 언어 설정 >

res/values에 string.xml 파일추가

Available qualifiers/Locale 선택해 오른쪽으로 넘기기

Language KO, Specific Region Only South Korea 선택

728x90

'Front-End > Kotlin' 카테고리의 다른 글

[Kotlin] Dialog  (1) 2024.04.22
[Kotlin] View Binding과 Event  (0) 2024.04.21
[Kotlin] RelativeLayout, FrameLayout, ConstraintLayout  (0) 2024.04.19
[Kotlin] GridLayout  (0) 2024.04.18
[Kotlin] LinearLayout  (0) 2024.04.17