9-1 리소스 종류와 특징

StrayCat·2022년 10월 8일
0

앱 리소스

  • 리소스 = 변경되지 않는 정적인 콘텐츠 / 정적인 자원
    • 앱 리소스
    • 플랫폼 리소스

앱 리소스

  • 개발자가 직접 추가한 리소스
  • 모듈 내의 res 디렉토리 내에 drawable, layout, mipmap, values 라는 기본 4개의 디렉토리 생성
디렉토리명리소스종류
animator속성 애니메이션
anim트윈 애니메이션
color색상 상태 목록 정의
drawable이미지
mipmap앱실행 아이콘
layout레이아웃
menu메뉴 구성
raw원시 형태로 이용되는 리소스
values단순 값으로 사용되는 리소스
xml그외 나머지 xml
font글꼴
  • res 안에 임의로 디렉토리를 만들 수 있고 하위에 추가할 수도 없다.
  • values 를 제외한 나머지 디렉토리에는 자바의 이름 작성 규칙을 따라가며 대문자를 쓸 수 없다.
  • 리소스 디렉토리와 파일들을 R 파일에 식별자로 자동 등록된다.

drawable - 이미지 리소스

(gradient_box.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF00"
        android:endColor="#80FF00"
        android:angle="45">
    </gradient>
    <corners android:radius="10dp"></corners>
</shape>
  • ImageView 내의 속성 중 src, srcCompat에 해당 값으로 넣어 사용할 수 있다.
app:srcCompat="@drawable/gradient_box"

values - 값 리소스

  • values 아래 디렉토리는 개발자가 자유롭게 설정할 수 있으며, 파일명이 R.values.strings 처럼 사용되지 않는다.
  • 리소스 내부 태그의 name 속성값이 등록되어 R.string.text01 처럼 값을 사용한다.

(values/strings.xml)

<resources>
    <string name="app_name">Memo Application</string>
    <string name="text01">First App</string>
</resources>

(activity_main.xml)

    <CheckBox
        (...)
        android:text="@string/text01"
         />
  • 대표적인 values 태그 종류
    • string
    • color : 색상
    • dimen : 크기
    • style : 스타일

(styles.xml)

<resources>
    <style name="MyStyle">
        <item name="android:textSize">@dimen/txt_size</item>
        <item name="android:text">@color/txt_color</item>
    </style>
    <style name="MyStyle2" parent="MyStyle">
        <item name="android:text">@color/txt_color2</item>
        <item name="android:background">#FFFFFFFF</item>
    </style>
    
</resources>
  • style 태그는 여러 속성 들을 하나의 태그로 묶어서 사용할 수 있게 해준다.
  • parent 속성을 통해 상속 받을 수 있다.

color - 색상 리소스

  • 색상 리소스를 등록한다.
  • values/colors.xml 에 <color> 태그 같은 경우, 색상 하나를 하나의 값으로 리소스에 등록한다.
  • color 디렉토리에는 특정 뷰의 상태를 표현하고 해당 상태에 적용되는 색상을 등록할 때 사용한다.

(button_text.xml)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:color="#FFFF0000"/>
    <item android:color="#FF000000"/>
</selector>
  • button이 pressed 상태일 경우 색상을 변경해 주도록 color 디렉토리 리소스파일에 지정할 수 있다.

font - 글꼴 리소스

  • TTF, OTF 글꼴 파일을 등록해서 사용한다.
  • pacifico.ttf 를 등록했을 경우 fontFamily 속성값을 @font/pacifico로 지정해준다.
<TextView
  (...)
  android:fontFamily="@font/pacifico" />

플랫폼 리소스

  • 안드로이드 플랫폼에서 제공하는 미리 등록되어진 리소스
  • 보기옵션 [Packages] 설정 후 [Libraries] 항목에서 찾을 수 있다.
  • 앱 R 파일이 아닌, android.R 파일을 통해 사용할 수 있다.
    • ex) android.R.drawable.alert_drak_frame
  • xml에서 사용할 경우 @android: 패턴으로 사용한다.
    • 앱 리소스의 경우 : @drawable/save
    • 플랫폼 리소스의 경우 : @android:drawable/save

0개의 댓글