본문 바로가기

프로그래밍/안드로이드

[안드로이드] 안드로이드 - 리소스 (2)

[안드로이드] 안드로이드 - 리소스 (2)


리소스 2        ☜ 현재 보는 곳

◈ 나중을 위해 고유 리소스 ID 정의하기

id를 할당하는 일반적인 방법은 새id를 생성하거나 안드로이드 패키지에 의해 생성된 id를 사용하는 것이다. 그러나 미리 id를 생성해 두었다가 개발자의 패키지에서 나중에 사용하는 방법도 가능하다.

<TextView android:id="@+id/text"> 은 text라는 id가 존재할 경우 그 id가 사용될 예정임을 나타낸다. 만일 그 id가 존재하지 않는다면 새 id가 생성될 것이다. 그렇다면 text 같은 id가 재사용되도록 R.java 안에 id 정의를 미리 넣을 수 있는 시점은 언제인가?

item이라는 리소스 태그를 사용해서 특정 리소스에 부착하지 않고 id를 정의하는 것이다.

Ex) 샘플 파일
   ..............
<resources>
     <item type="id" name="text"/>
</resources>

type은 리소스 종류를 참조하는데, 이 예의 경우 리소스 종류는 id이다. 일단 이 id만 알맞게 배치되면 다음 View 정의가 제대로 작동한다.

<TextView android:id="@id/text">
...
</TextView>


/res 하위 폴더 리소스 파일 종류
 - anim(애니메이션), drawable(이미지), layout(view 레이아웃), values(문자열, 색상, 크기, 스타일), xml(컴파일된 xml), raw(컴파일 되지 않은 xml 주로 음원, 영상파일)

◈ 색상 리소스
/res/values/color.xml 형태로 보통 사용한다. 실제로 values 폴더안에서 파일 이름은 아무런 상관이 없으며 <resources>하단의 color라는 xml 노드를 통해서 구분을 하게 된다.

Ex) color.xml
..............
<resources>
     <color name="text">#FF000000</color>
     <color name="background">#FF00FF00</color>
     <color name="link">#FFF0FFF0</color>
</resources>

Ex) java파일에서 사용하기

  TextView tv = new TextView(this)
   tv.setTextColor(R.color.text);

Ex)레이아웃에서 사용하기

<TextView ............ 생략 .................
            android:textColor="color/text"  />

◈ 문자열 리소스

/res/values 폴더에 있어야 하며 색상 리소스처럼 파일명은 상관이 없다.

<resources>
     <string name="test_str01">테스트 문자</string>
     <string name="test_str02"> \" 테스트 문자 \" </string>
     <string name="test_str03">
             테스트 문자 %d%s  여러개.
     </string>
     <string name="test_str04">
               테스트 문자  <b>  <i>  테스트 테스트 </i></b>
     </string>
</resources>


자바에서 테스트 하기
String javaStr03 = activity.getString(R.string.test_str02);
String javaStr_sub03 = String.format(javaStr03, "공공");


이녀석만 특이하며 나머지는 기존 사용하는 것과 동일하다.
String testStr = activity.getString(R.string.test_str01);

한후 testStr을 그대로 사용하면 된다.


◈ 치수 리소스

안드로이드에서 가능한 치수는

px(픽셀), in(인치), mm(밀리미터), pt(포인트), dp(밀도 절대 픽셀), sp(크기 절대 픽셀) 이다.

화면크기에 상관없이 일정하게 표한하기 위해서는 dp를 사용하기를 추천한다.

<resources>
       <dimen name="size_px">3px</dimen>
       <dimen name="size_dp">10dp</dimen>

       <dimen name="size_in">9in</dimen> 
</resources> 


Ex)  자바 코드에서 사용하기

float dimen = activity.getResources().getDimension(R.dimen.size_px);

Ex)  레이아웃에서 사용하기
  <TextView .................... 생략 ............
                       android:textSize="@dimen/medium_size"/>

◈ 이미지 리소스
/res/drawable 폴더에 이미지를 넣은후 사용한다. 사용가능한 이미지는 gif, jpg, png등이며 소문자만 사용가능하다. drawabled의 하위 폴더는 무시되며 그 폴더내의 모든 파일은 로딩되지 않습니다.


Ex)  자바 코드에서 사용하기

BitmapDrawable d = activity.getResources().getDrawable(R.drawable.testimg);
button.setBackgroundDrawable(d);

button1.setBackgroundResource(R.drawable.testimg2);


Ex)  레이아웃에서 사용하기

  <TextView .................... 생략 ............
                       android:background="@drawabld/test_img01"/>


리소스 2        ☜ 현재 보는 곳

덧글]

개발하시다가 온몸이 찌뿌둥하시면 아래 동영상을 따라 스트레칭을 한번하세요.


1. 목디스크 예방을 위한 목운동    ☞  http://jwandroid.tistory.com/192 

2. 손목터널증후군 손목스트레칭으로 예방합시다.     ☞  http://jwandroid.tistory.com/193

3. 개발자 여러분 허리를 세우세요 - 척추체조 1번     ☞  http://jwandroid.tistory.com/194

4. 개발자 여러분 허리를 세우세요 - 척추체조 2번     ☞  http://jwandroid.tistory.com/195

5. 개발자 여러분 허리를 세우세요 - 척추체조 3번     ☞   http://jwandroid.tistory.com/196

6. 개발자 여러분 허리를 세우세요 - 척추체조 4번     ☞  http://jwandroid.tistory.com/197