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