如何更改使用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>`