如何更改操作栏及其溢流菜单的颜色?

时间:2014-03-17 07:41:45

标签: java android user-interface

以下是我的应用程序的屏幕截图: enter image description here

我可以使用R.id.button1访问按钮并使用

更改其背景
case R.id.lightgreen:
          for (Button currentButton : buttons) {
                currentButton.setBackgroundResource(R.drawable.lightgreen);
            }

有没有办法访问操作栏及其溢出菜单以同样的方式设置颜色?

[编辑]

ActionBar actnbar;
actnbar.setBackgroundDrawable(R.drawable.blue_button);

这给我一个错误,要求将blue_button转换为drawable,但如果我这样做,那么我将无法设置按钮。

2 个答案:

答案 0 :(得分:0)

在项目的values文件夹中定义自定义style.xml,如下所示:

<resources>

    <style name="Theme.CustomTHeme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/Theme.CustomTHeme.ActionBar</item>
    </style>

    <style name="Theme.CustomTHeme.ActionBar" parent="@style/Widget.AppCompat.ActionBar">
        <item name="background">@drawable/header_gradient</item>
        <item name="titleTextStyle">@style/Theme.CustomTHeme.ActionBar.TitleTextStyle</item>
    </style>

    <style name="Theme.CustomTHeme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">#fff</item>
    </style>

</resources>

然后在你的AndroidManifest.xml中:

<application
        android:name=".App"
        android:label="@string/app_name"
        android:icon="@drawable/logo"
        android:theme="@style/Theme.CustomTHeme">
...

您还必须注意支持其他api-s(其他值文件夹)。

如果您使用的是actionbarcompat支持库,则可以访问使用ActionBarActivity扩展getSupportActionBar()的活动中的操作栏并使用 如果不使用支持库,则为setStackedBackgroundDrawable()setBackgroundDrawable()或相应的getActionBar()方法。

答案 1 :(得分:0)

Action Bar Style Generator是设置操作栏样式的绝佳工具。