如何使用 XML 更改 ActionBarActivity 的 ActionBar 的背景颜色?
详细信息:
我正在扩展 ActionBarActivity。
截至 2011 年 11 月 6 日,Eclipse 和 SDK 已完全修补。
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />
部署到搭载 Android 2.3.3 的 Samsung 设备
应用程序有 android:theme="@android:style/Theme.Light"
问题: 应用程序很轻,但 ActionBar 是蓝色的,带有灰色图标,在蓝色背景下几乎不可见颜色。我还希望 ActionBar 是浅色的,这样它们的灰色图标就更明显。
我尝试过修改样式但无济于事。
我可能错过了一些微不足道的事情。
如何使用 XML 更改 ActionBarActivity 的 ActionBar 的背景颜色?
Details:
I'm extending ActionBarActivity.
Eclipse and SDK fully patched as of 2011-11-06.
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />
Deployed to Samsung device with Android 2.3.3
Application has android:theme="@android:style/Theme.Light"
Issue: application is light, but ActionBar is blue with grey icons, hardly visible against the blue background color. I also want the ActionBar to be light, so they grey icons are more visible.
I've tried modifying the styles but to no avail.
I'm probably missing something trivial.
How do I change the background color of the ActionBar of an ActionBarActivity using XML ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(20)
根据 文档 - “您可以控制操作的行为和可见性带有 ActionBar API 的 bar,这些 API 是在 Android 3.0(API 级别 11)中添加的。”
因此,ActionBar 不适用于 API 级别 10 (Android 2.3.3) 的目标环境。
以防万一,如果您的目标是最低 API 级别 11 ,您可以通过定义自定义样式来更改 ActionBar 的背景颜色,如下所示:
并且,将“MyTheme”设置为应用程序/活动的主题。
As per documentation - "You can control the behaviors and visibility of the action bar with the ActionBar APIs, which were added in Android 3.0 (API level 11)."
So, ActionBar will not work for your target environment which is at API level 10 (Android 2.3.3).
Just in case, if you target for minimum API level 11 , you can change ActionBar's background color by defining custom style, as:
And, set "MyTheme" as theme for application / activity.
试试这个
Try this
试试这个:
try this:
使用这个 - http://jgilfelt.github.io/android-actionbarstylegenerator/
这是一个惊人的工具,可让您通过实时预览自定义操作栏。
我尝试了早期的答案,但在更改选项卡和字母等其他颜色时总是遇到问题,并且花了几个小时调整内容。这个工具帮助我在短短几分钟内完成了设计。
祝一切顺利! :)
Use this - http://jgilfelt.github.io/android-actionbarstylegenerator/
Its an amazing tool that lets you customize your actionbar with a live preview.
I tried the earlier answers but always had problems with changing other colors like the tabs and letters and spent hours tweaking stuff. This tool helped me get my design done in just a couple of minutes.
All the best! :)
我遇到了同样的问题,当我输入该代码时,我的操作栏会变成灰色。您的原始样式表很可能如下所示:
“DarkActionBar”使您的操作栏保持灰色。我把它改成这样,它起作用了:
我还加入了如何编辑文本颜色。此外,无需更改资源周围的任何内容。
-沃伦
I had the same problem, where my Action Bar would turn grey when I entered that code. Chances are your original style sheet looked like this:
The "DarkActionBar" was what was keeping your Action Bar grey. I changed it to this, and it worked:
I also threw in how to edit the text color. Also, no need to change anything surrounding the resources.
-Warren
Actionbar 的行为也可以在 API 中更改 11
参考Android官方文档
我正在使用
minSdkVersion = "9"
和targetSdkVersion = "21"
构建一个应用程序,我更改了操作栏的颜色,它可以很好地使用API级别9这里有一个xml
res/values/themes.xml
并设置你想要的actionbar的颜色
res/values/colors.xml
Actionbar颜色也可以在
.class
文件中定义,该代码段是,但是此 不会与 API 一起工作 11,因此在
xml
中设置操作栏样式是 API
的唯一方法。 11Behavior of Actionbar can also be changed in APIs < 11
See the Android Official Documentation for reference
I am building an app with
minSdkVersion = "9"
andtargetSdkVersion = "21"
I changed the color of action bar and it works fine with API level 9Here is an xml
res/values/themes.xml
and set the color of actionbar you want
res/values/colors.xml
Actionbar color can also be defined in
.class
file, the snippet isbut this will not work with the API < 11, so styling the actionbar in
xml
is only way for API < 11对于 Kotlin 用户 - 我尝试过,这适用于浅色模式和深色模式 -
将其添加到 onCreate 中,如下所示 -
For Kotlin users - I tried it and this works with light mode and dark mode -
Add this in onCreate like this -
在 Nexus 4 上,这似乎会使颜色变成灰色。
(所有功劳都归功于这篇文章,但它被隐藏在评论中,所以我想在这里将其浮出水面)
https://stackoverflow.com/a/17198657/1022454
On the Nexus 4 people this seems to make the color go grey.
(all credit to this post, but it is buried in the comments, so I wanted to surface it here)
https://stackoverflow.com/a/17198657/1022454
尝试一行代码:
try one line code :
2021 年:Kotlin oneliner 不弃用:
只需将其放入 onCreate 并根据您的需要更改颜色
2021: Kotlin oneliner with no deprecation:
Simply put it into onCreate and change the color depending on your needs
这是更改操作栏颜色的方法。
从您的 MainActivity.java 中更改操作栏颜色,如下所示
This is how you can change the color of Action Bar.
From your MainActivity.java change the action bar color like this
当您扩展 Activity 时,请使用以下代码
当您扩展 AppCompatActivity 时,请使用以下代码
When you are Extending Activity use following Code
When you are Extending AppCompatActivity use following Code
有时此选项会抛出 NullPointerException
ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable(“颜色”));
但这个选项对我有用。所以你可以试试这个。
快乐编码
Sometimes this option throws NullPointerException
ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
But this option is worked for me. So you can try this.
Happy Coding
这段代码可能会有所帮助
This code may be helpful
这对我有用,对于 AppCompatActivity,
This worked for me, for AppCompatActivity,
如果您使用的是 androidx AppCompact。使用下面的代码。
If you are using androidx AppCompact. Use below code.
使用此代码..更改操作栏背景颜色。
打开“res/values/themes.xml”(如果不存在,请创建它)
并添加
注意:此代码仅适用于 android 3.0 及更高版本
Use This code ..to change action bar background color.
open "res/values/themes.xml" (if not present, create it)
and add
Note : this code works for android 3.0 and higher versions only
对于使用 API 21 或更高版本的用户来说非常简单 使用下面的代码
作为 Dark ActionBar
for_LightActionBar
Its very simple for those who are using API 21 or greater Use this code below
for Dark ActionBar
for_LightActionBar
用这个,就可以了。
Use this, it would work.
颜色.xml 文件:
color.xml file: