如何以编程方式更改操作栏项目的背景颜色

9

通过设置以下内容,可以轻松地在操作栏中设置项目背景的默认颜色:

<item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>

在应用程序主题中,我想仅针对一个片段更改此颜色。如何以编程方式实现?
3个回答

11

3
是的,我做到了,它改变了操作栏的背景颜色,但没有改变菜单项的背景颜色。 - Tomasz
你是指选项卡的背景颜色吗? - Elementary
我在谈论操作栏项。请查看此图片上的[2]:http://developer.android.com/images/ui/actionbar@2x.png - Tomasz
1
图标应该是 PNG 格式(背景透明)。 - Rajesh Mikkilineni
1
我不确定,但我认为一个解决方案可能是为这种情况定义自己的样式,然后只需切换样式即可。 - Elementary
@RajeshM: 我认为Tomasz并不想改变整个操作栏的颜色,而只是想更改操作栏项图标所在小方格的背景颜色。 - Elementary

7

使用简单的一行代码...传递所需颜色的RGB值

getActionBar().setBackgroundDrawable(new ColorDrawable(Color.rgb(248, 248, 248)));

对于颜色代码,您可以使用这个网站: http://www.rapidtables.com/web/color/RGB_Color.htm

(注:该网站提供RGB、HEX和HSL颜色代码转换工具)

@RuchirBaronia 我想我们永远不会知道了。 - Denny

1
我发现了一个简单的解决方法。您可以将操作栏项目的背景设置为透明色。然后更改操作栏的颜色将更改项目的背景。我没有看到在不重新创建活动的情况下更改项目颜色的可能性。

@ramesh6233,如果您可以重新创建活动(activity),那就没有问题了;否则,请使用我的小技巧。 - Tomasz
你能告诉我如何将透明颜色设置为操作栏项吗?谢谢。 - Ramesh
styles.xml文件中定义您的自定义主题,使用我问题中的代码,然后在AndroidManifest文件中使用它: <application android:theme="@style/MyTheme" ... - Tomasz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接