Android:更改ActionBar下面的行颜色

时间:2013-09-11 08:33:13

标签: android android-actionbar

我想更改ActionBar下方橙色线的颜色。

http://s14.directupload.net/images/130911/3suejbj2.png

我尝试了一些事情,但到目前为止没有任何帮助。

Galaxy S2上的当前主题是橙色主题。 所以改变主题,也改变了界限。 但我不知道如何访问该行,以便改变颜色。

4 个答案:

答案 0 :(得分:12)

您可以使用此代码来实现您的目的。

background.xml

<?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="#ff0000" />
        </shape>
    </item>
    <item android:bottom="5dp">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </item>
</layer-list>

styles.xml

<resources>
    <style name="AppTheme" parent="android:Theme.Holo">
        <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
        <item name="android:background">#ffffff</item>
        <item name="android:colorBackground">#ffffff</item>
    </style>
    <style name="AppTheme.ActionBar" parent="android:Widget.ActionBar">
        <item name="android:background">@drawable/background</item>
    </style>
</resources>

当您没有任何选项菜单(例如图像显示)时,这些代码是合适的,如果您有选项菜单,则必须自定义选项菜单项背景。

如果您有下面的选项菜单代码是合适的:

<resources>
    <style name="AppTheme" parent="android:Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
        <item name="android:popupMenuStyle">@style/AppTheme.PopUpMenu</item>
    </style>
    <style name="AppTheme.ActionBar" parent="android:Widget.ActionBar">
        <item name="android:background">@drawable/background</item>
    </style>
    <style name="AppTheme.PopUpMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
        <item name="android:popupBackground">@drawable/background</item>
    </style>
</resources>

答案 1 :(得分:4)

有一种比这更简单的方法(创造一堆风格)。 参考this。只需设置

getActionBar().setBackgroundDrawable(null);

这将从您的操作栏中删除该行

答案 2 :(得分:1)

我使用了这个^ _ ^并且100%正常工作:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Drawable res = getResources().getDrawable(R.drawable.ab_transparent_example);
    getActionBar().setBackgroundDrawable(res);

并且只是使用.9.png

答案 3 :(得分:0)

就我而言,在我的应用程序中,我使用了Holo主题。

<style name="AppTheme" parent="android:Theme.Holo">
       ...
 </style>

通过属性设置背景工具栏。

<style name="AppTheme" parent="android:Theme.Holo">
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/action_bar_background</item>
</style>

标准Holo动作栏背景是9-patch drawable,如下所示:
nine patch drawable

所以,如果你想改变底线的颜色,你需要创建一个新的9补丁drawable。 Create Resizable Bitmaps (9-Patch files)

将文件放在drawable文件夹中(例如drawable-xxhdpi),并在主题中指定文件的路径。