티스토리 뷰

OS/Android

[Android] ICS 테마 & 스타일

유승구 2012.01.06 11:18
 http://android-developers.blogspot.com/2012/01/holo-everywhere.html 
안드로이드 개발자 블로그의 내용을 요약했습니다.
아래 정리 내용을 보고 원문을 보면 이해가 편할 것 같아 남깁니다.

HOLO Theme

안드로이드는 진저브레드 이후로 UI가 정말 많이 변했습니다. 허니컴부터는 타블렛을 위한 OS다 말할 정도로 하드웨어키가 사라지고 UI 상에 키 버튼이 생겨났습니다. 블로그에서 말하기를 이러한 테마를 Holo 라고 부르는 것 같습니다. 

HOLO는 위에서 언급했듯이 3.0에서 발표되었고 4.0에서 개선 되었다고 보면 됩니다.
이미 다들 아시겠지만 아이스크림부터는 모바일과 타블렛의 앱의 경계선이 없어지게 되었습니다.
타블렛용 앱과 모바일용 앱을 별도로 만들지 않아도 되는 것이죠. 

[Them Holo Family]
Theme.Holo
Theme.Holo.Light
Theme.Holo.Light.DarActionBar

 테마의 종류는 대략 이렇습니다.

android:theme="@android:style/Theme.Holo" 
또한 위 구문을 입력하는 것만으로 4.0 Device에 사용하는 테마를 이용 할 수 있습니다. 
또한 테마의 속성값을 이용해 배치할 컴포넌트들의 레이아웃 구성을 테마처럼 꾸밀 수 있습니다.

그렇다고 무조건 바꿀 필요는 없습니다. 아래와 같이 사용하면 테마를 유지하거나 올릴 수 있습니다. Device Default는 Device 에서 기본적으로 정해놓은 look을 따라가는 것입니다. 이것은 디바이스에 따라 다른 것입니다.

11 버전 이하의 경우 : @android:style/Theme
11 버전과 13의 경우 : @android:style/Theme.Holo
14 이상의 경우 : @android:style/Theme.DeviceDefault
API-11  부터 HOLO 테마는 가능하지만 DarActionBar는 14에서만 가능합니다.  

버전 별로 Look을 유동적으로 변화 시키기 위한 방법
res/values/themes.xml 에서 아래와 같이 사용하면 됩니다.

<resources>
   
<style name="MyTheme" parent="@android:style/Theme">
       
<!-- Any customizations for your app running on pre-3.0 devices here -->
   
</style>
</resources>
3res/values-v11/themes.xml에 Theme.Holo를 추가해주면 4.0에서는 4.0 Look으로 돌아갑니다.
그리고는 AndroidMenifest.xml 에 내용을 추가합니다.

<!-- [...] -->
   
<application android:name="MyApplication"
           
android:label="@string/application_label"
           
android:icon="@drawable/app_icon"
           
android:hardwareAccelerated="true"
           
android:theme="@style/MyTheme">
<!-- [...] -->
 에뮬레이터에서 테스트 해봤는데 이렇게 하면 일일히 테마를 바꿀필요가 없이 자기가 알아서 하게 됩니다. 좀 위쪽 말이 안 맞는 것 같아 다시 덧붙여 보자면...

어플리케이션 업그레이들 할 때 Look을 각 버전별로 맞게 하고 싶다면!
블로그에 존재하는 내용을 이용하시면 되겠습니다. 
보시고 지적사항이 있으면 댓글 남겨주시면 수정 하겠습니다. 
댓글
댓글쓰기 폼