如何更改使用XML的ActionBarActivity的ActionBar的背景颜色?

细节:

我正在扩展ActionBarActivity。
截至2011年11月6日,Eclipse和SDK已完全修补。

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" /> 

与Android 2.3.3部署到三星设备
应用程序有android:theme="@android:style/Theme.Light"

问题:应用程序很轻,但ActionBar是蓝色的灰色图标,对蓝色背景颜色几乎看不见。 我也想要ActionBar是轻的,所以他们灰色的图标更明显。

我试过修改样式,但无济于事。
我可能错过了一些微不足道的东西。

如何更改使用XML的ActionBarActivity的ActionBar的背景颜色?

根据文档 – “您可以使用在Android 3.0(API级别11)中添加的ActionBar API来控制操作栏的行为和可视性。”

所以,ActionBar将不适用于API级别为10(Android 2.3.3)的目标环境。

以防万一,如果您的目标是最低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”设置为应用程序/活动的主题。

希望这可以帮助…

尝试这个

 ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable("COLOR")); 

尝试这个:

 ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff"))); 

使用这个 – http://jgilfelt.github.io/android-actionbarstylegenerator/

它是一个了不起的工具,可以让您自定义您的操作栏实时预览。

我尝试了以前的答案,但总是有改变其他颜色,如标签和字母和花费时间调整的东西的问题。 这个工具帮助我在几分钟内完成devise。

这是该工具的屏幕截图

祝一切顺利! 🙂

我有同样的问题,当我input代码时,我的Action Bar会变成灰色。 机会是你的原始样式表看起来像这样:

 <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> </style> 

“DarkActionBar”是什么让你的行动栏灰色。 我改变了这一点,它的工作原理:

 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> <!-- API 14 theme customizations can go here. --> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">#2aa4cd</item> <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> </style> <style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">#FFFFFF</item> </style> 

我也扔在如何编辑文字的颜色。 另外,不需要改变任何资源。

-Warren

Actionbar的行为也可以在API <11中改变

请参阅Android官方文档以供参考

我正在用minSdkVersion = "9"targetSdkVersion = "21"构build一个应用程序,我更改了操作栏的颜色,并且在API级别9

这是一个XML

res/values/themes.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">@color/actionbar_background</item> <!-- Support library compatibility --> <item name="background">@color/actionbar_background</item> </style> </resources> 

并设置你想要的操作栏的颜色

res/values/colors.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="actionbar_background">#fff</color> //write the color you want here </resources> 

Actionbar的颜色也可以在.class文件中定义,片段是

 ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff"))); 

但是这对API <11 不起作用 ,所以在xml设置操作栏只是API <11的方式

在Nexus 4上,这似乎使颜色变灰。

 ActionBar bar = getActionBar(); // or MainActivity.getInstance().getActionBar() bar.setBackgroundDrawable(new ColorDrawable(0xff00DDED)); bar.setDisplayShowTitleEnabled(false); // required to force redraw, without, gray color bar.setDisplayShowTitleEnabled(true); 

(所有信贷到这个职位,但它被埋在评论中,所以我想在这里表面) https://stackoverflow.com/a/17198657/1022454

直接添加此行与您的颜色代码

 getSupportActionBar().setBackgroundDrawable( new ColorDrawable(Color.parseColor("#5e9c00"))); 

不需要每次创buildActionBar对象…

尝试一行代码:

 getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.MainColor))); 

使用下面的代码为actionbar文本和actionbar背景提供不同的颜色,只需在清单中使用下面的主题来对付您希望输出的活动:)

 <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> 

此代码可能会有所帮助

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- Customize your theme here. --> </style> <style name="Theme.MyTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- customize the color palette --> <item name="colorPrimary">@color/material_blue_500</item> <item name="colorPrimaryDark">@color/material_blue_700</item> <item name="colorAccent">@color/material_blue_500</item> <item name="colorControlNormal">@color/black</item> </style> <style name="CardViewStyle" parent="CardView.Light"> <item name="android:state_pressed">@color/material_blue_700</item> <item name="android:state_focused">@color/material_blue_700</item> <!--<item name="android:background">?android:attr/selectableItemBackground</item>--> </style> 

这是你如何改变操作栏的颜色。

 import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Build; import android.support.v4.content.ContextCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; public class ActivityUtils { public static void setActionBarColor(AppCompatActivity appCompatActivity, int colorId){ ActionBar actionBar = appCompatActivity.getSupportActionBar(); ColorDrawable colorDrawable = new ColorDrawable(getColor(appCompatActivity, colorId)); actionBar.setBackgroundDrawable(colorDrawable); } public static final int getColor(Context context, int id) { final int version = Build.VERSION.SDK_INT; if (version >= 23) { return ContextCompat.getColor(context, id); } else { return context.getResources().getColor(id); } } } 

从你的MainActivity.java改变这个动作栏的颜色

  ActivityUtils.setActionBarColor(this, R.color.green_00c1c1); 

使用此代码..来更改操作栏的背景颜色。 打开“res / values / themes.xml”(如果不存在,创build它)并添加

 <?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> 

注意:此代码仅适用于Android 3.0及更高版本

使用这个,它会工作。

 ActionBar actionbar = getActionBar(); actionbar.setBackgroundDrawable(new ColorDrawable("color")); 
 getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.TabColor))); 

color.xml文件:

 <resources> <color name="TabColor">#11FF00</color> </resources>`