액션바는 사용자에게 작업을 수행하고 탐색할 수 있는 익숙하고 당연한 방법을 제공합니다. 하지만 그것이 다른앱과 정확히 같은 모양으로 보일 필요는 없습니다. 만약 여러분이 더 나은 본인의 앱 브랜드를 꾸미고 싶다면, 여러분은 아주 손쉽게 안드로이드의 스타일(Style)과 테마(Theme) 자원들(Resources)을 사용하여 액션바를 꾸밀 수 있습니다.
안드로이드는 "dark" 또는 "light" 액션바 스타일을 포함한 몇가지 빌트인 액티비티 테마들을 가지고 있습니다. 여러분은 또한 이 테마들을 사용자가 원하는 모습으로 customize 하도록 확장할 수 있습니다.
Note: 만약 여러분이 액션바를 위해 Support Library APIs를 사용한다면 반드시 Theme.AppCompat 스타일을 사용(또는 Override)해야만 합니다.(API level 11버전 이상에서 사용할 수 있는 Theme.Holo 패밀리들 대신하여) 이 과정에서, 여러분은 각각의 스타일 속성을 두 번 선언해야만 합니다. 한 번은 플랫폼의 스타일 속성을 사용합니다.(android: 속성) 그리고 또 한번은 Support Library( appcompat.R.attr 속성- 현재 액티비티 속성들에 대한 Context) 에 포함된 스타일 속성을 사용합니다.
안드로이드(Android) 테마(Theme) 사용하기
--------------------------------------------
안드로이드는 액션바의 색상(Color)를 지시하고 있는 두개의 기본적인 액티비티 테마를 포함하고 있습니다.
° "dark" 테마인 Theme.Holo
° "light" 테마인 Theme.Holo.Light
여러분은 메니페스트 파일 안에 있는 <application> 요소나 개별적인 <activity>요소에 android:theme 를 선언함으로 여러분의 앱 전체 또는 각각의 개별적인 액티비티에 이 테마들을 적용할 수 있습니다.
예:
<application android:theme="@android:style/Theme.Holo.Light" ... /> |
또한 Theme.Holo.Light.DarkActionBar 를 선언함으로서 밝은 색의 색상 구성을 사용하면서 액션바는 어둡게 사용할 수도 있습니다.
만약 여러분이 Support Library를 사용한다면, 여러분은 Theme.AppCompat 으로 대체하여 사용하셔야 합니다.
° "dark" 테마인 Theme.AppCompat
° "light" 테마인 Theme.AppCompat.Light
° "light" 테마와 "dark" 액션바 테마인Theme.AppCompat.Light.DarkActionBar
여러분의 액션바 색상에 적절하게 대비되는 색상으로 icon 을 사용했는지 확인하시기 바랍니다. 여러분에게 도움을 주기위해 Action Bar Icon Pack 안에 Holo light 나 Holo dark 액션바에서 사용할 수 있는 표준 액션 아이콘들(action icons)을 포함해 놓았습니다.
배경(Background) 커스터마이즈(사용자 정의)
-------------------------------------------
액션바의 배경을 변경하기위해 actionBarStyle 속성을 오버라이드(override) 하여 여러분의 액태비티 테마을 커스터마이징 할 수 있습니다. 이 속성은 액션바에 drawable 리소스를 지정하여 여러분의 배경 속성을 오버라이드 할 수 있도록 합니다.
만약 여러분의 앱이 navigation tabs 나 split action bar 를 사용한다면, 여러분은 이 액션바들 각 각에 backgroundStacked 와backgroundSplit 속성을 지정하여 사용할 수 있습니다.
주의(Caution): 여러분의 커스텀(custom) 테마(Theme)와 스타일(Style)에 적절한 부모 테마를 선언하여 그 것들의 스타일을 상속하는 것은 매우 중요합니다. 부모 스타일이 없다면, 여러분의 액션바(Action Bar)는 여러분이 직접 명시적으로 선언한 속성을 제외하고 많은 스타일 속성들이 없이 만들어 집니다.
Android 3.0 이상에서
Android 3.0 이상을 지원한다면, 여러분은 아래처럼 액션바의 배경(background) 를 정의 할 수 있습니다.
res/values/theme.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> </style> </resources> |
그런다음 전체 앱 또는 각 각의 개별적인 액티비티들에 여러분의 테마(Theme)를 적용합니다.
<application android:theme="@style/CustomActionBarTheme" ... /> |
Android 2.1 이상에서
여러분이 Support Library 를 사용했을 때, 여러분이 위와 같은 테마를 사용하려면 아래처럼 테마를 대체해야 합니다.
res/values/theme.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_background</item> </style> </resources> |
그런다음 전체 앱 또는 각 각의 개별적인 액티비티들에 여러분의 테마(Theme)를 적용합니다.
<application android:theme="@style/CustomActionBarTheme" ... /> |
다음 포스트에서 이어합니다.--
'Android 개발자사이트 튜토리얼' 카테고리의 다른 글
액션바(Action Bar) 오버레이(Overlaying) 하기 (0) | 2015.03.27 |
---|---|
액션바(Action Bar) 꾸미기 2 (0) | 2015.03.27 |
액션바(Action Bar)에 액션버튼들(Action Buttons) 추가하기 (0) | 2015.03.27 |
Action Bar 만들기 (0) | 2015.03.27 |
Action Bar(액션바) 추가하기 (0) | 2015.03.27 |