[Android Studio] 9장 - 리소스 조건 설정

이상협·2022년 9월 8일
0

안드로이드스튜디오

목록 보기
32/43
post-custom-banner

리소스 조건 설정

리소스 조건 설정이란 어떤 리소스를 특정 환경에서만 적용되도록 설정하는 것을 말한다.

  • 기기마다 화면 밀도, 즉 화면의 크기가 다르기 때문에 이미지를 크게 5개씩 준비한다.

기기별 실행 아이콘 크기

화면 밀도크기
XXXHDPI192x192
XXHDPI144x144
XHDPI96x96
HDPI48x48
MDPI36x36

리소스 조건 설정하기

리소스 조건을 이용하려면 아이콘의 파일명을 똑같이 지정해야한다.
똑같은 파일명으로 만들면 R 파일에는 식별자가 하나만 생성이 된다.

  • 파일명이 중복되는 문제는 디렉터리를 구분하여 해결한다. (mipmap-mdpi, mipmap-hdpi)
  • 실행 아이콘의 디렉터리 조건은 개발자가 신경 쓰지 않아도 된다.
    • 앱을 만들 때 플랫폼이 알아서 res 디렉터리 아래에 mipmap 디렉터리를 여러개 만든다.

리소스 조건

조건예시설명
MCC 및 MNCmcc310
mcc310-mnc004
이동통신 국가 코드(MCC)와 선택적으로 이동통신 네트워크 코드
(MNC)추가 가능. mcc310은 미국이며 mcc310-mnc003=4는 버라
이즌을 이용하는 미국을 의미
언어 및 지역en
ko-rKR
ISO639-1 언어 코드이며 선택적으로 뒤에 소문자 r을 추가해 ISO3166-1-alpha-2의 지역 코드가 나올 수 있음
레이아웃 방향IdrtI, IdItr히브리어처럼 오른쪽에서 왼쪽으로 쓰는 언어의 레이아웃에서 유용하게 이용 가능. IdrtI은 오른쪽에서 왼쪽, IdItr은 왼쪽에서 오른쪽 방향 레이아웃
더 작은 쪽sw320dp화면 크기 중 더 작은 쪽에 대한 조건. 화면 방향과 상관없이 화면의 높이와 너비 중 작은 쪽에 대한 조건을 의미, sw320dp이면 너비든 높이든 상관없이 작은 쪽의 치수가 320dp인 경우를 의미
이용 가능한 너비w720dp화면 너비에 대한 조건. w720dp이면 너비가 720인 기기
이용 가능한 높이h720dp화면 높이에 대한 조건. h720dp이면 높이가 720인 기기
화면 크기small, normal, large, xlarge화면 크기를 small, normal, large, xlarge로 판단해 조건 명시. small은 320x428, normal은 320x470, large는 480x640, xlarge는 720x960 정도의 크기
화면 비율long, notlong화면의 종횡비 조건.long은 WQVGA, WVGA, FWVGA 등의 긴 화면, notlong은 QVGA, HVGA, VGA등의 길지 않은 화면
원형 화면round, notround원형 화면인지 판단. round는 웨어러블 기기처럼 둥근 화면을 가지는 기기. notround는 폰이나 태블릿처럼 사각형 화면의 기기
화면 방향port, land화면의 방향에 대한 조건. port는 세로 방향, land는 가로 방향
UI모드car, desk, television, application, watch, vrheadset기기가 도크게 압입되거나 제거될 때 대응을 위한 조건. car는 자동차, desk는 데스크, television은 TV, application은 표시되지 않은 제품
야간 모드night, nonight야간 모드에 대응하기 위한 조건. night는 야간, nonight는 주간
화면 픽셀 밀도ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, nodpi, tvdpi, anydpi, nnndpi화면 밀도에 대한 조건, ldpi는 120dpi, mdpi는 160dpi, hdpi는 240dpi, xhdpi는 320dpi, xxhdpi는 480dpi, xxxhdpi는 640dpi, nodpi는 크기를 조정하지 않을 리소스에 사용
터치 스크린 유형notouch, finger터치 스크린을 제공하는지 판단. notouch는 터치 스크린이 없는 기기
키보드 가용성keysexposed, keyshidden, keyssoft키보드의 유형. keyssoft는 소프트 키보드, keysexposed는 키보드가 노출되어 있는 기기, keyshidden은 키보드가 있으나 숨길 수 있는 기기
기본 텍스트 입력방법nokeys, qwerty, 12keynokeys는 하드웨어 키보드가 없는 경우. qwerty는 하드웨어 쿼티 키보드가 있는 경우. 12key는 하드웨어 12키가 있는 경우
탐색 키 가용성navexposed, navhidden탐색 키 사용 가능 조건. navexposed는 탐색 키 사용 가능, navhidden은 탐색 키 사용 불가
기본 비터치 탐색방법nanav, dpad, trackball, wheel터치하지 않고 탐색이 가능한 기기가 있는지 판단
플랫폼 버전v21기기의 API 레벨

위 표는 조건 나열 순서로 정리되어 있다.

  • 언어조건과 밀도 조건을 함께 지정한다면 언어 조건 다음에 밀도 조건이 와야 한다.

참고

  • Do it! 깡쌤의 안드로이드 프로그래밍 with 코틀린 (개정판)
post-custom-banner

0개의 댓글