상세 컨텐츠

본문 제목

앱 개발 방법 - 앱 리소스 (액세스)

안드로이드 프로그래밍/앱 리소스

by green post it 2022. 1. 6. 17:26

본문

반응형

앱 리소스 액세스

일단 어떤 리소스를 애플리케이션에 제공한 다음에는 해당 리소스의 리소스 ID를 참조함으로써 이를 적용할 수 있습니다. 모든 리소스 ID는 aapt 도구가 자동으로 생성하는 프로젝트의 R 클래스에서 정의합니다.

 

애플리케이션이 컴파일되면 aapt 가 R 클래스를 생성하며 이 클래스 안에 res/ 디렉토리에 있는 모든 리소스의 리소스 ID가 들어 있습니다.

 

각 리소스 유형에는 R 하위 클래스가 있고(예:모든 드로어블 리소스에 대한 R.drawable) 해당 유형의 각 리소스에는 고정된 정수가 있습니다.(예:R.drawable.icon)  이 정수가 리소스를 검색하는 데 사용할 수 있는 리소스 ID입니다.

 

리소스 ID가 R 클래스에서 지정되기는 하지만 리소스 ID를 찾기 위해 이곳을 볼 필요는 전혀 없습니다. 리소스 ID는 항상 다음과 같이 구성됩니다.

  • 리소스 유형 : 각 리소스는 '유형'으로 그룹화됩니다.(예 : string, drawable, layout) 다양한 유형에 관한 자세한 내용은 리소스 유형을 참조하세요
  • 리소스 이름 : 리소스가 단순 값(예 : 문자열 등)일 경우 확장자를 제회한 파일 이름이나 XML android:name 특성 값 중 하나입니다.

리소스에 액세스하는 방법은 두 가지가 있습니다.

 

코드 내부에서 : R 클래스의 하위 클래스에서 고정된 정수를 사용합니다. 예를 들면 다음과 같습니다. 

 

R.string.hello

 

string는 리소스 유형이고 hello는 리소스 이름입니다. 리소스 ID를 이 형식으로 제공하면 리소스에 액세스할 수 있는 Android API가 많습니다.

 

XML 내부에서 : R 클래스에서 정의된 리소스 ID에 사용하기도 하는 특수 XML 구문을 사용합니다. 예를 들면 다음과 같습니다.

 

@string/hello

 

@string/hello​string는 리소스 유형이고 hello는 리소스 이름입니다. 이 구문은 리소스로 값을 제공할 것으로 예상되는 어느 곳에나 Xml 리소스 형태로 사용할 수 있습니다. 

 

aapt가 R 클래스를 생성하며 R 클래스 안에 res/ 디렉토리에 있는 모든 리소스 ID가 들어 있다. 리소스 유형에는 R 하위 클래스가 있고 해당 유형의 각 리소스에는 고정된 정수가 있다.이 정수가 리소스를 검색하는 데 사용할 수 있는 리소스 ID이다.

코드 내부에서 리소스 액세스 방법 : R.string.hello --> R 클래스의 하위 클래스에서 고정된 정수를 사용하는 방법
XML 내부에서 리소스 액세스 방법 : @string/hello --> 특수 XML 구문을 사용하는 방법

 

반응형

관련글 더보기