如何在不使用任何图像资源的情况下更改android操作栏的颜色?

时间:2013-11-14 12:00:45

标签: android android-actionbar android-actionbar-compat

我想改变动作栏的颜色,但我不擅长制作图像资源,所以我想知道是否有可能在没有图像的情况下做到这一点。比如为某些属性或其他东西设置颜色?我冲浪了很多但是有太多令人困惑的答案,我无法弄清楚要使用哪一个 我正在为8以上的sdk开发,所以我正在使用支持库。请帮忙。

3 个答案:

答案 0 :(得分:3)

Android Action Bar Style Generator

生成您想要的主题

将它生成的所有文件复制到res文件夹和VOILA中的相应文件夹..;)

答案 1 :(得分:2)

您可以轻松找到答案here。或者您可以click here轻松创建图像资源。但无论如何,这就是你如何做到的 首先,在项目的“values”文件夹中的“colors.xml”中为操作栏定义所需的颜色,如下所示:

    <color name="customColor">#f1f1f1</color>

然后在drawable文件夹中创建一个名为“actionbar_drawable.xml”的新.xml文件。它必须是一个“形状”可绘制的。

抽拉\ actionbar_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >    
    <solid 
        android:color="@color/customColor"/>    
</shape>

现在使用以下代码在“values”文件夹中创建“themes.xml”:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">

    <style name="CustomActionBar" parent="@style/Theme.AppCompat.Light">
       <item name="android:actionBarStyle" tools:targetApi="11">@style/CustomBar</item>
    <!-- Support library compatibility -->
       <item name="actionBarStyle">@style/CustomBar</item>         
    </style>

    <style name="CustomBar"
         parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
       <item name="android:background">@drawable/actionbar_drawable</item>
    <!-- Support library compatibility -->
       <item name="background">@drawable/actionbar_drawable</item>
    </style>
</resources>

然后在您的清单文件中,为您的活动设置主题,如下所示:

android:theme="@style/CustomActionBar"  

这就是全部。现在您不必制作任何图像资源。希望它对你有所帮助。

答案 2 :(得分:1)

activity.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(activity.getResources().getColor(R.color.my_color)));