Android Programming

[Mobile Programming] 리소스

gangintheremark 2021. 11. 19. 21:42
728x90

리소스

  • 애플리케이션 제작 시 필요한 다양한 종류의 데이터(이미지, 문자열, 레이아웃, 동영상 등)
  • 각종 리소스들은 그 종류에 따라 특별하게 이름 지어진 리소스 폴더에 모여 있음

리소스 종류

  • drawable 폴더 : 이미지 리소스
  • layout 폴더 : 레이아웃
  • values 폴더 : 각종 데이터 값
  • values/colors.xml : 자주 사용하는 컬러 이름 지정
  • anim : 트윈 애니메이션을 정의
  • raw : 시스템에 의하여 압축되지 않는 원본 파일

기본 리소스 : 장치에 상관없이 기본적으로 사용되는 리소스
대체 리소스 : 특정한 장치 구성을 위하여 설계된 리소스
(ex. 어느 나라에 있는지에 따라 그림이 달라지게 하는 것 )

  • 기본 리소스만 있는 경우, 같은 레이아웃 사용
  • 대체 리소스가 있는 경우, 다른 레이아웃 사용

대체 리소스를 제공하는 방법

  • 대체 리소스 지정 → 리소스 폴더의 이름을 바꿔주는 것
  • 폴더명은 다르게 설정, 폴더 속 파일은 같은 이름

리소스 수식자

  • 대체 리소스 폴더 이름을 정하는 수식어
  • MCC/MINC
  • 언어 구분 : en, enrUS
  • 스크린 크기 : small, normal,large,xlarge
  • 스크린 종횡비 : long, notlong
  • 스크린 방향 : port, land
  • UI, 밤 모드, 스크린 픽셀 밀도, 키보드 여부

리소스 참조

R클래스

  • 안드로이드 스튜디오 aapt도구가 자동으로 R클래스 생성
  • R.java 파일에 R클래스 정의
  • res폴더에 정의된 리소스의 아이디(파일명, 이름) 저장

참조 방법

  • JAVA코드에서 리소스를 참조하는 방법 : R.[리소스타입].[리소스이름]
  • XML코드에서 리소스를 참조하는 방법 : @[리소스타입].[리소스이름]
  • 리소스 정의 시 한 곳만 수정하면 나머지도 동일하게 수정 가능
  • 파일의 내용만 수정하는 것도 용이
728x90