
📝 SeSAC의 'JetPack과 Kotlin을 활용한 Android App 개발' 강좌를 정리한 글 입니다.
거의 대부분은 XML 파일 형식으로 리소스를 담고,
이미지 같은 파일은 바이트 데이터 그대로 리소스 파일로 추가된다.
🧩 R 클래스의 리소스 파일 추가 과정
리소스 파일을 추가하는 순간, R 클래스 안에 static final이 붙는 drawable 이라는 inner 클래스가 자동으로 생성된다. 그리고 리소스 파일을 구분하는 int형 변수가 리소스 파일명으로 추가되어 임의의 정수값을 갖는다. 우리는 이 변수명으로 리소스 파일을 사용할 수 있다.
R. drawable.파일명 R. layout.파일명 @drawable.파일명 @layout.파일명
| 폴더명 | 내용 |
|---|---|
| drawable | 이미지 |
| layout | UI |
| mipmap | 런처 아이콘 |
res 하위 폴더 안에 서브 폴더 생성 불가
리소스 파일명은 자바 명령 규칙 준수 + 알파벳 대문자 사용 불가
| 폴더명 | 내용 |
|---|---|
| anim | Tween animation XML, 정적 애니메이션 |
| drawable | 이미지 리소스 |
| mipmap | 앱 런처 아이콘 이미지 리소스 |
| layout | 레이아웃 XML |
| menu | 메뉴 구성 XML |
| raw | 원시 형태로 이용되는 리소스 파일 |
| values | 단순 값으로 이용되는 리소스 |
| xml | 특정 폴더가 정의되지 않은 나머지 XML 파일 |
raw
바이트 데이터를 담기 위한 리소스 폴더
간단한 음원 파일 혹은 영상 파일 등을 담는다.
플랫폼에서 제공하는 리소스
폴더명으로 조건을 걸 수 있다.
자주 사용하는 조건도 있고 거의 사용하지 않는 조건도 있다.
모든 res 하위 폴더에 사용할 수 있다.
| 조건 | 속성 예제 |
|---|---|
| 이동통신 국가 코드 | mcc310, mcc310-mnc004 |
| 언어 및 지역 | en, ko-rKR |
| 레이아웃 방향 | ldrtl, ldltr |
| 이용 가능한 너비 | w720dp |
| 이용 가능한 높이 | h720dp |
| 화면 크기 | small, normal, large, xlarge |
| 화면 비율 | long, notlong |
| 원형 화면 | round, notround |
| 화면 방향 | port, land |
| UI 모드 | car, desk, television, application, watch, vrheadset |
| 야간 모드 | night, notnight |
| 화면 픽셀 밀도 | ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, nodpi, tvdpi, anydpi, nnndpi |
| 터치 스크린 유형 | notouch, finger |
| 키보드 가용성 | Keysexposed, keyshidden, keyssoft |
| 기본 텍스트 입력 방법 | nokeys, qwerty, 12key |
| 탐색키 가용성 | navexposed, navhidden |
| 기본 비터치 탐색 방법 | nanav, dpad, trackball, wheel |
| 플랫폼 버전 | v21 |
❗ 주의