在Action Bar,Android中更改按钮的背景

时间:2014-11-07 18:48:49

标签: android menu android-actionbar

我遇到问题,我正在开发一款应用,我想改变Action Bar按钮的背景颜色。我跟着它了:

在我的menu.xml中,我有这段代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".main" >
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="@string/action_search"/>
    <item android:id="@+id/action_carrito"
        android:title="@string/action_example"
        android:icon="@drawable/ic_carrito"
        app:showAsAction="always" />
</menu>

我的styles.xml,我有这个:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>

        <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
        <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@android:color/white</item>
        <item name="android:textSize">18sp</item>
    </style>

    <style name="MyActionButtonStyle" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:background">@color/darker_green</item>
    </style>

</resources>

两个按钮都会捕捉到这种背景色。但我只想把它用于id为&#34; @ + id / action_carrito&#34;的按钮。我希望有人可以帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试在action_carrito_bg.xml文件夹下创建layer-list drawable,该内容如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/darker_green"></solid>
        </shape>
    </item>
    <item>
        <bitmap android:src="@drawable/ic_carrito"/>
    </item>
</layer-list>

然后从MyActionButtonStyle中移除styles.xml,并将该drawable设置为菜单项的图标:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".main" >
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="@string/action_search"/>
    <item android:id="@+id/action_carrito"
        android:title="@string/action_example"
        android:icon="@drawable/action_carrito_bg"
        app:showAsAction="always" />
</menu>