IT정보공유/Android

[안드로이드 개발 요약 - 9] 리소스 접근 방법과 가로방향 리소스 추가 방법

알지오™ 2017. 6. 6.

안드로이드 개발을 하면서 strings.xml, colors.xml, styles.xml 등의 리소스에 접근 하는 방법입니다.


리소스 접근 2가지 방법.


1) 코드 접근 방식 (R.ResourceType.ResourceId 형태)

Resources res = getResources();

String strRes = res.getString(R.string.notice_send_button);

int iColor = res.getColor(R.color.colorAccent);


// strings.xml 에는 stringID1 이라는 리소스가 선언되어 있음.

<resources>

    <string name="app_name">모바일공지 by 이경남</string>

    <string name="banner_ad_unit_id_choice">ca-app-pub-8767008738956276/7691223743</string>

    <string name="notice_send_button">입력 내용을 공지로 전송</string>

</resources>



// colors.xml 에는 textcolor 라는 리소스가 선언되어 있음.

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <color name="colorPrimary">#3F51B5</color>

    <color name="colorPrimaryDark">#303F9F</color>

    <color name="colorAccent">#FF4081</color>

</resources>

2) Layout 직접 접근 방식 (@ResourceType.ResourceID 형태)

            

               <Button

                android:id="@+id/btnInputSend"

                android:layout_width="match_parent"

                android:layout_height="62dp"

                android:text="@string/notice_send_button" />


안드로이드 스튜디오에서 가로방향 UI, 즉 랜드스케이프(Landscape) 모드 화면전환 구성이 필요한 방법에

대한 안내입니다.

안드로이드는 세로모드 레이아웃과 가로모드 레이아웃을 별도로 구성해야 합니다.

이때, 안드로이드 OS 차원에서 자동적으로 가로모드와 세로모드를 구분해서 레이아웃 액티비티를 생성하기 때문에

layout xml도 가로와 세로 모드 두가지를 지원하려면 둘다 미리 만들어둬야 합니다. (물론 기본적으로 따로 만들지 않아도 가로모드로 전환이 됩니다만

화면 레이아웃이 많이 망가지게 되기때문에 미리 만들어두라고 하는겁니다.)



가로 방향 레이아웃 또는 리소스 추가 방법


[안드로이드 개발 요약 - 9] 리소스 접근 방법과 가로방향 리소스 추가 방법


안드로이드 스튜디오의 프로젝트 메뉴중 res 하위의 layout 메뉴를 우클릭하여

새로운 레이아웃 리소스 파일을 추가 합니다.


[안드로이드 개발 요약 - 9] 리소스 접근 방법과 가로방향 리소스 추가 방법


왼쪽에 보면 다양한 리소스 속성을 추가할 수도 있습니다.

지금은 저도 가로방향 추가 하는거 외엔 아무것도 모르기 때문에 가로방향 레이아웃만 추가를 해봅시다.


[안드로이드 개발 요약 - 9] 리소스 접근 방법과 가로방향 리소스 추가 방법


Landscape 를 선택하고, File Name에는 기존 activity_main.xml 과 같은 이름을 주었습니다.

같은 이름을 준 이유는 안드로이드에서는 같은 이름 뒤에 -land, -port 등으로 이름이 따라 붙으면서

구분하는 것으로 알고 있습니다.


[안드로이드 개발 요약 - 9] 리소스 접근 방법과 가로방향 리소스 추가 방법


위 사진처럼 layout 리소스안에 

activity_main.xml 이 있고, activity_main.xml (land) 라고 붙은 레이아웃이 생성되었습니다.


이상태에서 아무것도 하지않고 앱을 빌드해서 실행을 시켜보았더니

가로방향으로 전환하자 마자 앱이 죽었습니다.


그래서 원래 최초 생성된 activity_main.xml의 xml 레이아웃을 고대로 복사한 뒤에

(이름 같은것도 바꾸지 않고 고대로 복사해옴)

레이아웃만 바꾸고 실행을 하니 화면전환을 하면 가로방향과 세로방향에 맞게

그냥 제대로 동작 하네요. 

코드 내용은 바꿀 필요가 없었습니다.


책읽는건 1시간인데, 블로그에 올리는건 2시간인듯.. 힘드네요. 

그래도 공부후에 정리를 하니 더 잘 배우고 있는거 같습니다.

댓글

💲 추천 글