TIL 53 | [Android] Android Studio의 리소스 참조 - xml -> Kotlin 소스코드에서 참조

Yoonsik·2022년 10월 27일
0

Android

목록 보기
3/3

⛓ Android Studio 에서 Resource 참조 방법

🔗 xml -> Kotlin 소스코드에서 참조

이전 포스팅에서도 설명하였듯이, 프로그램을 생성하는데 사용되는 자원들(color(색깔), string(문자열), dimen(위젯들의 크기 등 .. )은 모두 .xml 파일 형태로 res 디렉터리 아래에 저장됩니다.
이번 포스팅에서는 이 자원들을 Kotlin 클래스(MainActivity)에서 참조하는 방법에 대해 다뤄보도록 하겠습니다.

🔗 R 클래스

R 클래스는 자동으로 생성되는 클래스로서, resource의 아이디가 배정되는 클래스입니다.
소스코드에서 resource에 접근할 때, 이 R클래스를 사용합니다.

참조 형식

색상(color) 자원을 참조하고 싶은 경우

형식) val 변수: Int = resources.getColor(R.color.colors.xml 파일에서 지정해둔 자원 name)
ex) var color: Int resources.getColor(R.color.btn1_color)

  • 실제 colors.xml 파일에 들어가보면, 색상 자원들이 다음과 같이 저장되어 있다. (각 자원들의 name은 개발자 마음대로 지정 가능)
colors.xml

<resources>
	<color name = "White">#FFFFFF</color>
	<color name = "Red">#FF0000</color>
	<color name = "Blue">#0000FF</color>
	<color name = "btn1_color">#D2B48C</color>
	...
</resources>

문자열(string) 자원을 참조하고 싶은경우

형식) val 변수: String = getString(R.string.string.xml 파일에서 지정해둔 자원 name)
ex) val string: String = getString(R.string.string.btn3)

  • 실제 strings.xml 파일에 들어가 보면, 문자열 자원들이 다음과 같이 저장되어 있다.
strings.xml

<resources>
	<string name = "btn1">버튼1</string>
	<string name = "btn2">버튼2</string>
	<string name = "btn3">버튼3</string>
	<string name = "text">환영합니다</string>
  	...
</resources>

위젯들의 크기(dimen) 자원을 참조하고 싶은경우

형식) val dimen: Float = resources.getDimension(id.dimen.dimens.xml 파일에서 지정해둔 자원 name)
__ex) `val dimen: Float = resources.getDiemension(id.dimen.dimens.textSize_medium)

  • 실제 dimens.xml 파일에 들어가 보면, 위젯들의 크기 자원들이 다음과 같이 저장되어 있다.
dimens.xml
<resources>
	<dimen name = "textSize_small">10sp</dimen>
	<dimen name="textSize_medium">20sp</dimen>
    <dimen name="textSize_large">30sp</dimen>
    <dimen name="space_small">10dp</dimen>
    <dimen name="space_medium">20dp</dimen>
    <dimen name="space_large">30dp</dimen>
    ...
</resources>

profile
꾸준함의 힘

0개의 댓글