转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38659147
上一篇文章我们初步了解了ActionBar的概念及为ActionBar自定义添加不同的Action item,Action View以及Action Provider等实现方法,接下来的这一片文章我们将讨论如何为ActionBar自定义不同的Style(样式),实现具有自己独特风格的Action Bar。
<uses-sdk android:minSdkVersion="8" android:maxSdkVersion="14" android:targetSdkVersion="19" />
<!-- 第二步 --> <!-- Android3.0及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@android:style/Theme.Holo"> <!-- 设置ActionBar Style --> <item name="android:actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="android:selectableItemBackground">@drawable/choose_action_items_background</item> </style> <!--Android3.0及以上ActionBar样式--> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="android:background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="android:titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android3.0及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!----------------------------------------------------------------------> <!--Android2.1及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@style/Theme.AppCompat"> <!-- 设置ActionBar Style --> <item name="actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="selectableItemBackground">@drawable/choose_action_items_background</item> </style> <!--Android2.1及以上ActionBar样式--> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android2.1及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style>
<activity android:name="com.androidleaf.actionbar.activity.ScreenSecondActivity" android:logo="@drawable/sys_icon" android:label="@string/main_title" android:theme="@style/MyActionBarTheme" >然后运行程序,效果图如图下:
<!-- Android3.0及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@android:style/Theme.Holo"> <!-- 设置ActionBar Style --> <item name="android:actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="android:selectableItemBackground">@drawable/choose_action_items_background</item> <!-- 设置overflow按钮的图片资源 --> <item name="android:actionOverflowButtonStyle">@style/MyOverFlowButton</item> <!-- 设置overflow中items的背景和点击选中时的style --> <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item> </style> <!--Android3.0及以上ActionBar样式--> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="android:background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="android:titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android3.0及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!--Android3.0及以上设置overflow按钮的图片资源 --> <style name="MyOverFlowButton" parent="@android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/actionbar_more_icon</item> </style> <!--Android3.0及以上设置overflow中items的背景和点击选中时的style--> <style name="MyDropDownListView" parent="@android:style/Widget.Holo.ListView.DropDown"> <item name="android:listSelector">@drawable/choose_action_items_background</item> <item name="android:background">@color/actionbar_background</item> </style> <!----------------------------------------------------------------------> <!--Android2.1及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@style/Theme.AppCompat"> <!-- 设置ActionBar Style --> <item name="actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="selectableItemBackground">@drawable/choose_action_items_background</item> <!-- 设置overflow按钮的图片资源 --> <item name="actionOverflowButtonStyle">@style/MyOverFlowButton</item> <!-- 设置overflow中items的背景和点击选中时的style --> <item name="dropDownListViewStyle">@style/MyDropDownListView</item> </style> <!--Android2.1及以上ActionBar样式--> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android2.1及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!--Android2.1及以上设置overflow按钮的图片资源 --> <style name="MyOverFlowButton" parent="@style/Widget.AppCompat.ActionButton.Overflow"> <item name="android:src">@drawable/actionbar_more_icon</item> </style> <!--Android2.1及以上设置overflow中items的背景和点击选中时的style--> <style name="MyDropDownListView" parent="android:style/Widget.AppCompat.ListView.DropDown"> <item name="listSelector">@drawable/choose_action_items_background</item> <item name="background">@color/actionbar_background</item> </style>然后运行程序,效果图如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="false" android:state_selected="false" android:drawable="@drawable/tab_unselected_unpressed" /> <item android:state_pressed="false" android:state_selected="true" android:drawable="@drawable/tab_selected_unpressed" /> <item android:state_pressed="true" android:state_selected="false" android:drawable="@drawable/tab_unselected_pressed" /> <item android:state_pressed="true" android:state_selected="true" android:drawable="@drawable/tab_selected_pressed" /> </selector>下面再看看styles.xml文件中的具体的代码:
<!-- Android3.0及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@android:style/Theme.Holo"> <!-- 设置ActionBar Style --> <item name="android:actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="android:selectableItemBackground">@drawable/choose_action_items_background</item> <!-- 设置overflow按钮的图片资源 --> <item name="android:actionOverflowButtonStyle">@style/MyOverFlowButton</item> <!-- 设置overflow中items的背景和点击选中时的style --> <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item> <!-- 设置ActionBar Tab的字体颜色--> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> <!-- 设置单个ActionBar Tab的样式背景 --> <item name="android:actionBarTabStyle">@style/MyActionBarTab</item> </style> <!--Android3.0及以上ActionBar样式--> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="android:background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="android:titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android3.0及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!--Android3.0及以上设置overflow按钮的图片资源 --> <style name="MyOverFlowButton" parent="@android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/actionbar_more_icon</item> </style> <!--Android3.0及以上设置overflow中items的背景和点击选中时的style--> <style name="MyDropDownListView" parent="@android:style/Widget.Holo.ListView.DropDown"> <item name="android:listSelector">@drawable/choose_action_items_background</item> <item name="android:background">@color/actionbar_background</item> </style> <!--Android3.0及以上设置ActionBar Tab的字体颜色--> <style name="MyActionBarTabText" parent="@android:style/Widget.Holo.ActionBar.TabText"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!--Android3.0及以上设置单个ActionBar Tab的样式背景 --> <style name="MyActionBarTab" parent="@android:style/Widget.Holo.ActionBar.TabView"> <item name="android:background">@drawable/tab_select_background</item> </style> <!----------------------------------------------------------------------> <!--Android2.1及以上ActionBar自定义的样式主题 --> <style name="MyActionBarTheme" parent="@style/Theme.AppCompat"> <!-- 设置ActionBar Style --> <item name="actionBarStyle">@style/MyActionBar</item> <!--设置ActionBar中ActionItems的背景和点击选中时的style --> <item name="selectableItemBackground">@drawable/choose_action_items_background</item> <!-- 设置overflow按钮的图片资源 --> <item name="actionOverflowButtonStyle">@style/MyOverFlowButton</item> <!-- 设置overflow中items的背景和点击选中时的style --> <item name="dropDownListViewStyle">@style/MyDropDownListView</item> <!-- 设置ActionBar Tab的字体颜色--> <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item> <!-- 设置单个ActionBar Tab的样式背景 --> <item name="actionBarTabStyle">@style/MyActionBarTab</item> </style> <!--Android2.1及以上ActionBar样式--> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!--设置ActionBar的背景--> <item name="background">@color/actionbar_background</item> <!--设置ActionBar的标题的样式--> <item name="titleTextStyle">@style/ActionBarTextStyle</item> </style> <!--Android2.1及以上ActionBar字体样式 --> <style name="ActionBarTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_tab_textcolor</item> </style> <!--Android2.1及以上设置overflow按钮的图片资源 --> <style name="MyOverFlowButton" parent="@style/Widget.AppCompat.ActionButton.Overflow"> <item name="android:src">@drawable/actionbar_more_icon</item> </style> <!--Android2.1及以上设置overflow中items的背景和点击选中时的style--> <style name="MyDropDownListView" parent="android:style/Widget.AppCompat.ListView.DropDown"> <item name="listSelector">@drawable/choose_action_items_background</item> <item name="background">@color/actionbar_background</item> </style> <!--Android2.1及以上设置ActionBar Tab的字体颜色--> <style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText"> <item name="textColor">@color/actionbar_tab_textcolor</item> </style> <!-- Android2.1及以上设置单个ActionBar Tab的样式背景 --> <style name="MyActionBarTab" parent="@style/Widget.AppCompat.ActionBar.TabView"> <item name="background">@drawable/tab_select_background</item> </style>然后运行程序,效果图如下: