如何更改操作栏的颜色?

时间:2015-03-03 18:33:12

标签: android android-actionbar

我一直试图改变动作栏的颜色而没有任何成功。我一直在寻找一段时间...... 我试过这篇文章的解决方案: How to change ActionBar color?

这是我的styles.xml:

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">#0091ea</item>
</style>
</resources>

4 个答案:

答案 0 :(得分:0)

你可以这样做

  <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
        <item name="android:background">YOUR_COLOR_CODE</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">YOUR_COLOR_CODE</item>
    </style>

很明显,您必须在AndroidManifest中的Activity上添加此主题。

修改

在您的活动

上添加这些导入
 import android.app.ActionBar;
 import android.graphics.drawable.ColorDrawable;

就在下面你就创造了这个

ActionBar ab = getActionBar(); 
       ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#81a3d0"));     
       ab.setBackgroundDrawable(colorDrawable);
  

这对我有用:

     

getActionBar()。setBackgroundDrawable(new ColorDrawable(0xff1d97dd));

让我知道它是否有效:)

答案 1 :(得分:0)

您可以使用Android Asset Studio创建自定义ActionBar样式,因此选择您希望AB拥有的颜色。

您还可以尝试此StackOverflow帖子How do I change the background color of the ActionBar of an ActionBarActivity using XML?

中的解决方案

引用:

  

以防万一,如果你的目标是最低API等级11,你可以改变   ActionBar通过定义自定义样式的背景颜色,如:

<resources>
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">ANY_HEX_COLOR_CODE</item>
    </style>
</resources>
     

并且,将“MyTheme”设置为应用程序/活动的主题。

答案 2 :(得分:0)

  

要更改操作栏背景,请为活动创建一个覆盖actionBarStyle属性的自定义主题。此属性指向另一种样式,您可以在其中覆盖background属性以指定操作栏背景的可绘制资源。

     

仅支持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="@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>
  

然后将您的主题应用于整个应用或个人活动:

<强>的AndroidManifest.xml

<application android:theme="@style/CustomActionBarTheme" ... />

Source

答案 3 :(得分:0)

您可以在styles.xml

中设置自定义颜色
<resources>
  <!-- inherit from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="android:colorPrimary">@color/primary</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="android:colorAccent">@color/accent</item>
  </style>
</resources>

然后创建一个colors.xml文件,并以十六进制格式设置颜色。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="primary">#F44336</color>
    <color name="primaryDark">#D32F2F</color>
    <color name="accent">#448AFF</color>
</resources>

转到此处了解详情:https://developer.android.com/training/material/theme.html#ColorPalette