본문 바로가기
Android Studio

안드로이드 #9 : Resource 230306

by haheehee 2023. 3. 6.

앱 리소스 사용하기

- 리소스 디렉터리명은 고정

- 리소스 파일명은 values에 추가하는 파일을 제외하고는 모두 자바의 이름 작성 규칙 준수

- 알파벳 대문자를 사용할 수 없음

디렉토리 리소스
animator 속성 애니메이션 XML
anim 트윈 애니메이션 XML
color 색상 상태 목록 정의 XML
drawable 이미지 리소스
mipmap 앱 실행 아이콘 리소스
layout 레이아웃 XML
menu 메뉴 구성 XML
raw 원시 형태로 이용되는 리소스 파일
values 단순 값으로 이용되는 리소스
xml 특정 디렉터리가 정의되지 않은 나머지 XML 파일
font 글꼴 리소스

 

리소스 종류

태그 설명
<shape> 도형. android:shpape="rectangle"처럼 shape의 속성을 이용해 도형의 타입을 지정. shape값은 rectangle, oval, line, ring 중 선택
<corners> 둥근 모서리를 그리는데 사용. shape 값이 rectangle일 때 적용
<gradient> 그라데이션 색상 지정
<size> 도형의 크기 지정
<solid> 도형의 색상 지정
<stroke> 도형의 윤곽선 지정

 

해당 모듈의 res-values폴더 - 마우스우클릭 - New - Values Resource File

 

같은 파일명은 생성 불가능하지만, 확장자가 다르면 가능함.

식별자를 동일하게 하여

영어-한국어를 각각의 string.xml파일에 입력해주면,

환경설정된 언어에 따라 호환된다.


res-layout파일도 동일하게 할 수 있다.

여기는 가로-세로 호환하기

 

 


가로/세로, 영어/한국어 실습

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/mallang"
        android:layout_centerHorizontal="true"/>
    <TextView
        android:id="@+id/mainTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/imageView"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:text="@string/intro_main"
        android:textSize="20dp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/detailTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/mainTextView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal"
        android:text="@string/intro_detail" />
    <TextView
        android:id="@+id/delayTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:gravity="center_horizontal"
        android:text="@string/intro_delay" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/delayTextView"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:background="@drawable/roundbutton"
        android:text="@string/intro_button"
        android:textColor="#FFFFFF"/>

</RelativeLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <TextView
        android:id="@+id/mainTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal"
        android:text="@string/intro_main"
        android:textSize="20dp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/detailTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/mainTextView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal"
        android:text="@string/intro_detail" />
    <TextView
        android:id="@+id/delayTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:gravity="center_horizontal"
        android:text="@string/intro_delay" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/delayTextView"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:background="@drawable/roundbutton"
        android:text="@string/intro_button"
        android:textColor="#FFFFFF"/>

</RelativeLayout>

activity_main.xml (land)

 

<resources>
    <string name="app_name">introduction</string>
    <string name="intro_main">
        Find your phone contacts on Messenger
    </string>
    <string name="intro_detail">
        Continuously uploading your contacts helps Facebook and Messenger suggest connections
        and provide and improve ads for you and others, and offer a better service.
    </string>
    <string name="intro_more">Learn More</string>
    <string name="intro_button">TURN ON</string>
    <string name="intro_delay">NOT NOW</string>
</resources>

res-values-strings

string.xml

<resources>
    <string name="app_name">introduction</string>
    <string name="intro_main">
        Messenger에서 휴대폰의 연락처에 있는 사람들을 찾아보세요
    </string>
    <string name="intro_detail">
       연락처를 계속 업로드하면 Facebook 및 Messenger에서 연결된 연락처를 추천하고 회원님과 다른 사람들에게 더욱 관련성 높은 광고를 표시하여 더 나은 서비스를 제공하는데 도움이 됩니다.
    </string>
    <string name="intro_more">더 알아보기</string>
    <string name="intro_button">설정</string>
    <string name="intro_delay">나중에 하기</string>
</resources>

res-values-strings

string.xml (ko-rKR)

 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="10dp"
    android:shape="rectangle"   >
    <solid android:color="#6666FF"></solid>
    <corners
        android:bottomLeftRadius="30dp"
        android:bottomRightRadius="30dp"
        android:topLeftRadius="30dp"
        android:topRightRadius="30dp"></corners>
</shape>

drawable폴더 

roundbutton.xml

 

- 결과 -

 

 

 

댓글