我对我的项目进行了一些更改,例如添加android.support.v7.app.ActionBarDrawerToggle / ActionBar / ActionBarActivity / Toolbar
。一切都运作良好,我唯一的问题是我不知道如何更改ActionBar
背景颜色,它是灰色的,文字是黑色的。
这就是我试过的:
的themes.xml
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme1" parent="@style/Theme.AppCompat.Light">
<item name="windowActionBar">false</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/blue</item>
<item name="background">@color/blue</item>
</style>
</resources>
的AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@drawable/zenyt"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme1">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
并在 strings.xml 中添加了这一行:
<color name="blue">#FF2E4976</color>
我还尝试以编程方式更改背景颜色:
ActionBar bar = getSupportActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF2E4976")));
但是我收到了这个错误:
Caused by: java.lang.NullPointerException
at com.zenyt.MainActivity.onCreate(MainActivity.java:67)
第67行是这一行:bar.setBackgroundDrawable(newColorDrawable(Color.parseColor("#FF2E4976")));
另一种方式是:
<item name=”colorPrimary”>@color/my_awesome_red</item>
<item name=”colorPrimaryDark”>@color/my_awesome_darker_red</item>
为了使用colorPrimary
,我需要将minSdk更改为21,但我正在Galaxy S3(4.1.2)上测试应用程序。我目前的minSdk是16,我想保持这样。
那么,有人可以帮助我吗?
编辑我决定也添加工具栏,也许我错过了什么
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
抱歉我的英文。
答案 0 :(得分:0)
在strings.xml中使用颜色来定义颜色
<color name="blue">#FF2E4976</color>
然后
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/blue</item>
<item name="background">@color/blue</item>
</style>