리소스 관리
K-MOOC 모바일 프로그래밍 10주차 리소스와 멀티미디어, 10-1 리소스 관리 에 대한 내용입니다.
리소스(resource)는 어플리케이션 제작 시 필요한 다양한 종류의 데이터를 가진다.
종류에 따라 특정한 리소스 폴더에 모여 있다.
리소스 파일마다 필요한 데이터를 가진다.
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개국을 위한 세개의 이미지를 이용하여 대체 리소스 사용하기
디폴트, 한국, 미국 폴더를 각각 만들어준다.
temp라는 이름은 같지만, 다른 폴더에 들어가 있는 것을 볼 수 있다.
temp.xml 을 둘다 지우고, 폴더만 남긴다.
그리고 같은 이름의 다른 사진 3개를 각 폴더에 넣는다.
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를 바꿔준다.
실행화면 순서대로 미국, 한국