0

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

4

3 回答 3

3

从Android 操作栏样式生成器生成您想要的任何主题

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

于 2013-11-14T12:16:50.640 回答
2

您可以在这里轻松找到答案。或者您可以单击此处非常轻松地创建图像资源。但无论如何,这就是你的做法。
首先,在项目的“values”文件夹中的“colors.xml”中定义您想要的操作栏颜色,如下所示:

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

然后在您的可绘制文件夹中创建一个名为“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"  

就这样。现在您不必制作任何图像资源。希望对你有帮助。

于 2013-11-14T12:26:02.777 回答
1
activity.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(activity.getResources().getColor(R.color.my_color)));
于 2013-11-14T12:10:42.707 回答