按下时更改操作栏按钮背景颜色

时间:2014-05-13 19:39:41

标签: android button colors background android-actionbar

如果按动作栏中的按钮,则其背景颜色不是我想要的。我的项目的背景颜色不响应我的点击事件。如何更改此项并在按下后更改背景颜色?

2 个答案:

答案 0 :(得分:21)

您需要声明android:actionBarItemBackground属性:

  

自定义项状态列表操作栏项的可绘制背景。

然后,在你的风格中做如下:

<style name="CustomStyle" parent="@style/Theme.Holo.Light" >
    <item name="android:actionBarItemBackground">@drawable/ab_item_background</item>
    <item name="actionBarItemBackground">@drawable/ab_item_background</item>
</style>  

所以,将你自己的drawable与selector和每个状态(按下,聚焦,禁用等)放在一起,以获得预期的背景。例如,上面声明的drawable ab_item_background.xml可能是这样的:

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <!-- focused/pressed: color=red -->
    <item 
        android:state_focused="true"
        android:state_pressed="true"
        android:drawable="@color/red" />
    <!-- pressed: color=red -->
    <item 
        android:state_pressed="true"
        android:drawable="@color/red" />
    <!-- normal: color=transparent -->
    <item 
        android:drawable="@android:color/transparent" />
</selector>

Styling the Action Bar中,您可以找到所有自定义项和所有属性。

答案 1 :(得分:1)

ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0a0a0a")));

这可能会有所帮助