Android Studio

리소스 관리

vision333 2020. 6. 10. 21:24
728x90

K-MOOC 모바일 프로그래밍  10주차 리소스와 멀티미디어, 10-1 리소스 관리 에 대한 내용입니다.

 

리소스(resource)는 어플리케이션 제작 시 필요한 다양한 종류의 데이터를 가진다.

종류에 따라 특정한 리소스 폴더에 모여 있다.

기본 res 파일

리소스 파일마다 필요한 데이터를 가진다.

drawable > 이미지 파일

layout > 액티비티들이 필요로 하는 레이아웃 파일

values > 각종 데이터 값

 

<기본 리소스와 대체 리소스>

기본 리소스 : 장치와 상관없이 기본적으로 사용되는 리소스 ( 스마트폰, 테블릿 상관없이)

대체 리소스 : 특정한 장치의 구성을 위한 리소스 ( 스마트폰과 테블릿 구분, 사용하는 국가 구분(언어 및 그림))

 

대체 리소스가 있는 경우 스마트폰과 테플릿이 다른 레이아웃을 사용하는게 가능하다.

 

<대체 리소스 제공하는 방법>

리소스 폴더의 이름을 바꿔주어 대체 리소스를 지정한다.

하이픈으로 용어를 붙여주어 용어에 따라 구분이 가게 한다. ( 폴더의 이름이 같으면 안된다. )

 

<폴더 이름을 붙이는 규칙>

MCC/MINC 

언어 구분 : en, enrUS 라는 값을 붙임

스크린 크기 : small, normal, large, xlarge

스크린 종황비 : long, notlong

스크린 방향 : port, land

등등 UI 모드 , 키보드 여부 등을 구분하는 폴더명을 붙여주어야 한다.

 

<R 클래스>

안드로이드 스튜디오 aapt 도구가 자동으로 R클래스를 생성한다.

R.java 파일에 R클래스를 정의한다.

R 클래스 안에서 폴더들의 이름으로 정의한다.

폴더의 클래스 안에는 리소스 이름을 기록한다.

> 따라서 자바 코드에서 리소스를 참고하기 위해서 R 클래스를 통해서 리소스를 참조한다.

> 자바 코드 : R.resourceType.resourceName 형태로 참조

> XML코드 : @resourceType.resourceName 형태로 참조

> 리소스를 활용하면 하나를 수정해도 전체 수정이 가능하다

(html css에서 클래스 지정하는 거랑 비슷한 거 같다.)

 

<실습 : 대체 리소스 사용하기>

3개국을 위한 세개의 이미지를 이용하여 대체 리소스 사용하기

 

drawble 폴더에 리소스 파일 추가

디폴트, 한국, 미국 폴더를 각각 만들어준다.

프로젝트창에서 확인

temp라는 이름은 같지만, 다른 폴더에 들어가 있는 것을 볼 수 있다.

temp.xml 을 둘다 지우고, 폴더만 남긴다.

그리고 같은 이름의 다른 사진 3개를 각 폴더에 넣는다.

Project에서 보이는 모습

values도 이와 같이 만들어준다.

values에서 strings.xml 코드

1. string.xml (디폴트 값)

<resources>
    <string name="app_name">My application</string>
    <string name="text">We Are Your Vision WayV</string>
    // app_name 과 test 에 대한 두개의 string 을 만듦.
</resources>

2. strings.xml(en-rUS)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">WayV Application</string>
    <string name="text">WayV wonwon</string>
</resources>

3. strings.xml(ko-rKR)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">웨이션브이 어플리케이션</string>
    <string name="text">WayV winwin</string>
</resources>

 

stings.xml 에서 정한 app_name으로 text를 바꿔준다.

다른 스트링도 만들어서 text로 text를 바꿔준다.

이렇게 디폴트 화면이 뜬다. 근데 너무 오타쿠 같다.

실행화면 순서대로 미국, 한국

 

728x90
반응형