앱 리소스 사용하기
- 리소스 디렉터리명은 고정
- 리소스 파일명은 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
- 결과 -
'Android Studio' 카테고리의 다른 글
안드로이드 #10 : 알림 만들기 230306 (0) | 2023.03.07 |
---|---|
안드로이드 #8 : chronometer 스탑워치 앱 230306 (0) | 2023.03.06 |
안드로이드 #7 : 이벤트 처리하기 230303 (0) | 2023.03.03 |
안드로이드 #6 : 전화걸기 화면에서 숫자누르기, back버튼, #(리셋) 기능 추가(이벤트 실습) 230303 (0) | 2023.03.03 |
안드로이드 #5 : 전화걸기 화면 만들어보기(레이아웃 실습) 230303 (0) | 2023.03.03 |
댓글