2015-02-01 2 views
0

Я внес некоторые изменения в свой проект, например добавление android.support.v7.app.ActionBarDrawerToggle/ActionBar/ActionBarActivity/Toolbar. Все работает хорошо, единственная проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как изменить цвет фона ActionBar, он серый, а текст черный. Это то, что я пробовал:Изменить цвет фона в android.support.v7.app.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) 

Line 67 это одна: bar.setBackgroundDrawable(newColorDrawable(Color.parseColor("#FF2E4976")));

Другой способ это:

<item name=”colorPrimary”>@color/my_awesome_red</item> 
<item name=”colorPrimaryDark”>@color/my_awesome_darker_red</item> 

В или der для использования colorPrimary Мне нужно изменить minSdk на 21, но я тестирую приложение на Galaxy S3 (4.1.2). Мой текущий minSdk - 16, и я хочу сохранить его таким образом. Итак, может кто-нибудь мне помочь?

EDIT я решил добавить панель инструментов, может быть, я что-то не хватает

<?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

В 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> 
+0

ли это, но это не имеет никакого эффекта, ActionBar еще серый. – Alec

+0

Подождите, вы установили windowActionBar в false, потому что используете панель инструментов в качестве своего actionBar? – freddieptf

+0

может быть аналогичен этому, тогда http://stackoverflow.com/questions/26554996/change-toolbar-color-in-appcompat-21 – freddieptf