앱 리소스 액세스
일단 어떤 리소스를 애플리케이션에 제공한 다음에는 해당 리소스의 리소스 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/hellostring는 리소스 유형이고 hello는 리소스 이름입니다. 이 구문은 리소스로 값을 제공할 것으로 예상되는 어느 곳에나 Xml 리소스 형태로 사용할 수 있습니다.
aapt가 R 클래스를 생성하며 R 클래스 안에 res/ 디렉토리에 있는 모든 리소스 ID가 들어 있다. 리소스 유형에는 R 하위 클래스가 있고 해당 유형의 각 리소스에는 고정된 정수가 있다.이 정수가 리소스를 검색하는 데 사용할 수 있는 리소스 ID이다.
코드 내부에서 리소스 액세스 방법 : R.string.hello --> R 클래스의 하위 클래스에서 고정된 정수를 사용하는 방법
XML 내부에서 리소스 액세스 방법 : @string/hello --> 특수 XML 구문을 사용하는 방법
'X' 카테고리의 다른 글
앱 개발 방법 - 앱 리소스 (XML에서 리소스 액세스 [XML 리소스로 리소스를 참조하는 데 쓰는 구문, 사용 사례]) (0) | 2022.01.07 |
---|---|
앱 개발 방법 - 앱 리소스 (코드 내 리소스 액세스 [코드로 리소스를 참조하는 데 쓰는 구문, 사용사례]) (0) | 2022.01.07 |
앱 개발 방법 - 앱 리소스 (별칭 리소스 생성, 드로어블, 레이아웃, 문자열 및 기타 단순 값) (0) | 2022.01.06 |
앱 개발 방법 - 앱 리소스 (대체 리소스 [한정자 이름 규칙]) (0) | 2022.01.06 |
앱 개발 방법 - 앱 리소스 (대체 리소스 [구성 한정자 이름]) (0) | 2022.01.05 |