[안드로이드] 리소스를 번걸아 사용하기

반응형




읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥


이어지는 글이 굉장히 늘어나 버렸습니다.-_-;

리소스 관련하여 여러가질 종합하다보니 너무나도 많네요...
아무래도 안드로이드에서 가장 중요한 부분이라 쭐이고 쭐여도 이정도 인듯;;;;


리소스 사용하기

디바이스 상의 UI언어 또는 하드웨어 설정 등으로 어플리케이션에서 사용할 서로 다른 리소스를 만들 수 있습니다. ( 여러가지 리소스를 포함할 수는 있지만 SDK 에는 어떤 리소스가 로드되는지를 지정하는 메소드는 없습니다 )

안드로이드에서는 하드웨어, 그리고 위치에 알맞은 집합을 찾은 뒤 그것을 로드하는 방식을 사용합니다.
이렇게 하면 사용자는 '설정' 등에서 번걸아 사용되는 언어를 선택할 수가 있겠지요. 이러한 택일적(alternate) 리소스를 포함하려면, 리소스가 포함될 폴더 이름을 설정수식어 가 붙게 만든 뒤 병렬형태로 지정하면 됩니다.

예를들어 영어를 위한 문자열 리소스와, 프랑스어 문자열 리소스가 있는 프로젝트라면 아래와 같게 구조를 만들면 되겠네요.



안드로이드에서는 다양한 값의 수식어를 지원하는데요,
리소스 폴더 이름의 끝에, 바 ( - : 대시 ) 로 구분하여 추가하면 됩니다.

수식어 순서

이러한 폴더에는 여러가지의 수식어를 추가할 수도 있지만 이럴경우에는 순서를 지켜야 합니다.
모든 옵션이 다 있다면 아래와 같은 순서로 지정될 것입니다.
MyApp/
    res/
      drawable-en-rUS-large-long-port-mdpi-finger
      -keysexposed-qwerty-dpad-480x320/

즉 이것은
 국가코드 - 지역코드 - 스크린크기 - 더 긴 / 더 넓은 스크린 여부 - 스크린의 가로세로 - 키보드 제공여부 - 기본텍스트 입력방법 - 터치스크린 이외의 네이게이션방법 - 스크린 해상도
를 나타냅니다.

일반적으로 모든 옵션을 다 지정하는 경우는 없기 때문에 전체 리스트에서 사용하지 않는 값은 누락을 시킬 수 있습니다. 이때 순서는 여전히 지켜져야 합니다

MyApp/
    res/
      drawable-en-rUS-finger/
      drawable-port/
      drawable-port-mdpi/
      drawable-qwerty/



폴더 이름 수식어

서열 순서대로 표시되어 있기 때문에 위쪽에 있는 수식어가 앞쪽에 위치합니다.

- 표 삽입이 오류가 나서 안되서 이 부분은 링크로 대체하겠습니다 -
http://developer.android.com/guide/topics/resources/providing-resources.html


이 표보다 더 중요한것은 어플리케이션이 자신이 실행되는 디바이스의 필요 정보를 이 리스트의 수식어를 통해 인코드 한다는 점입니다.
어찌되든 수식어 존재 여부에 관계없이 모든 리소스는 ' res/ ' 디렉토리 밑에 위치한다는 것만 기억해주셔도 됩니다 ^&^


수식어가 있는 리소스 사용시 주의할 점

1. 여러개의 수식어는 바(-) 에 의해 분리시켜야 합니다.

2. 수식어의 순서가 필히 지켜져야 합니다.

3. 값들은 대소문자를 구분하지 않습니다. 리소스 컴파일러가 처리과정에서 실제 전체폴더 이름을 소문자로 변환해버리기 때문입니다. 따라서 모든 이름을 소문자로 통일하거나, 쉽게 찾을 수 있도록 일관된 방식을 사용하면 좋습니다.

4. 각 수식어 타입에는 하나의 값만을 지원합니다. 예를들어 스페인어와 프랑스어를 지원하는 드로블 리소스를 사용하려면 ' drawable-rEs-rFR ' 처럼 사용할 수 없다는 것입니다.
서로 다른 디렉토리, 즉 ' drawable-rEs ' 와 ' drawable-rFR ' 을 따로 생성해야 됩니다.

5. 수식어 디렉토리는 또 다른 수식어 디렉토리 안에 위치할 수 없습니다.
즉, 'res/drawable/drawable-en' 같은것은 안되겠죠 ㅎ


리소스가 코드에서 참조되는 법

모든 리소스는 코드 또는 다른 리소스에서 간단하게 참조가 됩니다.

프로젝트명 / res / drawable-mdpi / image.png  라고 한다면 코드에서는 R.drawable.image 로 참조하면 끝입니다. XML 에서는 @drawable/image 로 참조가 가능합니다.
만일 여러개의 드로블 디렉토리가 있다면 시스템이 알맞은 디렉토리 하나를 선택하여 로드하게 됩니다. 이것도 굉장히 편하죠 ㅎㅎ




끝~~








리소스에 대한 내용은 게속 이어집니다 ㅎ

다음글은 이러한 리소스를 번갈아 가면서 사용하기~!
 


관련글


반응형

댓글

Designed by JB FACTORY