如何设置自定义的ActionBar颜色/样式?
我在我的项目中使用Android Navigation bar
,我想将操作栏中的顶部颜色更改为红色,我该怎么做? 我有这样的事情
我想要这样的东西,
我怎么能做到这一点?
你可以通过创build一个自定义的样式来定义ActionBar(和其他东西)的颜色:
只需编辑Android项目的res / values / styles.xml文件。
比如像这样:
<resources> <style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBarTheme</item> </style> <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">ANY_HEX_COLOR_CODE</item> </style> </resources>
然后将“MyCustomTheme”设置为包含ActionBar的Activity的主题。
你也可以像这样设置ActionBar的颜色:
ActionBar actionBar = getActionBar(); actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
采取从这里: 如何更改使用XML的ActionBarActivity的ActionBar的背景颜色?
一般来说,Android OS利用“主题”来允许应用程序开发人员将全局的UI元素样式参数应用于整个Android应用程序,或者也可以应用于单个Activity子类。
因此,有三种主stream的Android操作系统“系统主题”,您可以在Android Manifest XML文件中指定当您为V3.0及更高版本开发应用程序
我在这里指的是(APPCOMPAT)支持库: – 所以这三个主题是1. AppCompat Light Theme (Theme.AppCompat.Light)
- AppCompat黑暗主题(Theme.AppCompat),
- 而这两者之间的混合,AppCompat Light Theme与Darker ActionBar(Theme.AppCompat.Light.DarkActionBar)
AndroidManifest.xml并看到标签,android主题被提及为: – android:theme =“@ style / AppTheme”
打开Styles.xml,我们在那里声明基础应用程序主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> </style>
我们需要重写这些父主题元素来设置操作栏的样式。
具有不同颜色背景的ActionBar: –
要做到这一点,我们需要创build一个新的风格MyActionBar(你可以给任何名字)带有@ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse的父引用,它保存Android ActionBar UI元素的样式特征。 所以定义是
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> </style>
我们需要在我们的AppTheme中引用这个定义,指出重写的ActionBar样式为 –
@风格/ MyActionBar
更改标题栏的文字颜色(例如黑色到白色): –
现在要改变标题的文字颜色,我们需要覆盖父引用parent =“@ style / TextAppearance.AppCompat.Widget.ActionBar.Title”>
所以风格的定义是
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/white</item> </style>
我们将在MyActionBar样式定义中引用此样式定义,因为TitleTextStyle修改是ActionBar父操作系统UI元素的子元素。 所以MyActionBar风格元素的最终定义是
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> <item name="titleTextStyle">@style/MyActionBarTitle</item> </style>
所以这是最后的Styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- This is the styling for action bar --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> <item name="titleTextStyle">@style/MyActionBarTitle</item> </style> <style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/white</item> </style> </resources>
有关进一步的ActionBar选项菜单样式,请参阅此链接
仅适用于Android 3.0及更高版本
当仅支持Android 3.0及更高版本时,您可以像这样定义操作栏的背景:
RES /值/的themes.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">#ff0000</item> </style> </resources>
适用于Android 2.1及更高版本
使用支持库时,您的样式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>
然后将您的主题应用到您的整个应用或个人活动中:
更多详情Documentaion
您可以通过以下方式更改操作栏的颜色:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/green_action_bar</item> </style>
多数民众赞成您需要改变行动栏颜色。
另外,如果你想改变状态栏的颜色只需添加行:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
这是一个从开发人员的Android网站截图,使其更清楚,这里是一个链接 ,阅读更多关于定制颜色古怪
另一个可能性。
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(“#0000ff”)));
正如我上面使用AppCompatActivity
答案没有为我工作。 但下面的解决scheme工作:
在res / styles.xml中
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> </style>
PS:我用colorPrimary
而不是android:colorPrimary
自定义颜色:
<style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/ColorPrimary</item> <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> <!-- Customize your theme here. --> </style>
定制风格:
<style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light"> <item name="android:selectableItemBackground">@drawable/ad_selectable_background</item> <item name="android:popupMenuStyle">@style/MyPopupMenu</item> <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item> <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item> <item name="android:actionDropDownStyle">@style/MyDropDownNav</item> <item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item> <item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item> </style>
更多: Android的ActionBar
在style.xml中添加这个代码
<resources> <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyAction</item> </style> <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">#333333</item> </style> </resources>
使用这个 – http://jgilfelt.github.io/android-actionbarstylegenerator/
在几分钟内用实时预览来定制您的操作栏的好工具。