본문 바로가기
X

앱 개발 방법 - 앱 리소스 (대체 리소스 제공)

by green post it 2022. 1. 5.
반응형

안드로이드 프로그래밍

대체 리소스 제공

거의 모든 앱이 특정 기기 구성을 지원하는 대체 리소스를 제공해야 합니다.

예를 들어 여러 가지 화면 밀도에 맞는 대체 드로어블 리소스를 포함해야 하며 여러가지 언어에 맞게 대체 문자열 리소스도 포함시켜야 합니다.

Android는 런타임에 현재 기기 구성을 감지하고 앱에 대해 적절한 리소스를 로드합니다.

각각 다른 레이아웃 리소스를 사용하는 서로 다른 두 개의 기기

 

리소스 세트에 대하여 구성별로 적절한 대체를 지정하려면 다음과 같이 합니다.

 

1.res/ 에 <resources_name>-<config_qualifier> 형식으로 이름을 지정하여 새 디렉토리를 만듭니다.

    <resources_name> 은 해당 기본 리소스의 디렉토리 이름입니다. (앱 개발 기초 - 2.리소스 디렉토리 참조)

    <qualifier>는 리소스를 사용할 개별 구성을 지정하는 이름입니다. (앱 개발 기초 - 4.리소스 한정자 참조)

    하나 이상의 <qualifier>를 추가할 수 있습니다. 각각 대시로 구분합니다.     

 

사용 예

drawable
drawable-en
drawable-fr-rCA
drawable-en-port
drawable-en-notouch-12key
예 : <리소스폴더이름>-<언어-터치스크린-기본텍스트입력방법>
drawable-en-port-ldpi
drawable-port-ldpi
drawable-port-notouch-12key

2.해당되는 각 대체 리소스를 이 새 디렉토리에 저장하세요. 이 리소스 파일은 기본 리소스 파일과 똑같은 이름을

  지정해야 합니다.

 

예를 들어 다음은 기본 리소스와 대체 리소스입니다.

res/
    drawable/
        icon.png
        background.png
    drawable-hdpi/
        icon.png
        background.png

hdpi 한정자는 해당 디렉토리의 리소스가 고화질 화면 기기용이라는 것을 나타냅니다.각 드로어블 디렉토리의 이미지는 특정 화면 화질에 맞추어 크기가 지정되었으나 파일 이름은 똑같습니다.

 

이렇게 하면 icon.png 또는 background.png 이미지를 참조하는 데 사용하는 리소스 ID는 항상 같지만 Android가 각 리소스 중에서 현재 기기에 가장 잘 일치하는 버전을 선택하게 됩니다.

이때 리소스 디렉토리 이름의 한정자를 기기 구성 정보와 비교하는 방법을 씁니다.

 

Android는 여러 가지 구성 한정자를 지원하며 한 디렉토리 이름에 여러 개의 한정자를 추가할 수 있습니다.

각 한정자를 대시로 구분하면 됩니다.

 

"앱 개발 기초 - 4.리소스 구성 한정자 이름"에 유효한 구성 한정자를 우선순위대로 나열한 것입니다.

리소스 디렉토리에 여러 개의 한정자를 사용하는 경우 해당 한장자를 디렉토리 이름에 추가할 때 "앱 개발 기초 - 4.리소스 구성 한정자 이름"에 나열된 것과 같은 순서로 추가해야 합니다.

 

대체 리소스는 특정 디바이스 또는 현재 언어, 특정 화면 크기 또는 픽셀 밀도를 대상으로 하는 리소스다.
안드로이드가 기본 리소스보다 특정 디바이스 또는 구성에 더 구체적인 리소스를 일치시킬 수 있는 경우 해당 리소스가 대신 사용된다.
현재 구성이과 일치하는 대체 리소스를 찾지 못하면 기본 리소스가 로드된다.
반응형