Как установить пользовательский цвет/стиль ActionBar?

Я использую Android Navigation bar в своем проекте, Я хочу изменить верхний цвет в панели действий на что-то красное. Как я могу это сделать? У меня есть что-то вроде этого,

top black

и я хочу что-то вроде этого,

top red

как я могу это достичь?

Ответ 1

Вы можете определить цвет ActionBar (и других вещей) с помощью создания пользовательского стиля:

Просто отредактируйте файл res/values ​​/styles.xml вашего проекта Android.

Например, например:

<resources>
    <style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
    </style>

    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">ANY_HEX_COLOR_CODE</item>
    </style>
</resources>

Затем установите "MyCustomTheme" как тему вашей деятельности, которая содержит ActionBar.

Вы также можете установить цвет для ActionBar следующим образом:

ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color

Взято отсюда: Как изменить цвет фона ActionBar ActionBarActivity с помощью XML?

Ответ 2

В целом ОС Android использует "тему", чтобы разработчики приложений могли глобально применять универсальный набор параметров стилей элементов пользовательского интерфейса для приложений Android в целом или, альтернативно, для одного подкласса Activity.

Таким образом, существуют три основные системные темы ОС Android, которые вы можете указать в своем XML файле манифеста Android при разработке приложений для версий 3.0 и более поздних версий.

Я имею в виду библиотеку поддержки (APPCOMPAT) здесь: Таким образом, три темы 1. Световая тема AppCompat (Theme.AppCompat.Light)

введите описание изображения здесь

  1. AppCompat Dark Theme (Theme.AppCompat),

введите описание изображения здесь

  1. И гибрид между этими двумя, AppCompat Light Theme с Darker ActionBar. (Theme.AppCompat.Light.DarkActionBar)

AndroidManifest.xml и посмотрите тег, тема Android называется: - android: theme = "@style/AppTheme"

Откройте Styles.xml, и у нас есть заявка на базовую прикладную программу: -

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  </style>

Нам нужно переопределить эти элементы родительской темы, чтобы создать стиль панели действий.

ActionBar с другим цветным фоном: -

Для этого нам нужно создать новый стиль MyActionBar (вы можете указать любое имя) с родительской ссылкой на @style/Widget.AppCompat.Light.ActionBar.Solid.Inverse, который содержит стиль для элемента интерфейса Android ActionBar. Таким образом, определение было бы

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="background">@color/red</item>
</style>

И это определение нам нужно указать в нашем AppTheme, указывая на переопределенное стили ActionBar как -

@стиль/MyActionBar ActionBar с розовым цветом фона

Изменить цвет текста заголовка (например, черный на белый): -

Теперь, чтобы изменить цвет текста заголовка, нам нужно переопределить родительскую ссылку parent = "@style/TextAppearance.AppCompat.Widget.ActionBar.Title" >

Таким образом, определение стиля будет

<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
</style>

Хорошо ссылайтесь на это определение стиля внутри определения MyActionBar style, так как модификация TitleTextStyle является дочерним элементом элемента пользовательского интерфейса ОС ActionBar. Таким образом, окончательное определение элемента стиля MyActionBar будет

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="background">@color/red</item>
    <item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>

SO - это последний файл Styles.xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <!-- This is the styling for action bar -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@color/red</item>
        <item name="titleTextStyle">@style/MyActionBarTitle</item>
    </style>

    <style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/white</item>
    </style>
</resources>

ActionBar с белым цветом заголовка  Для дополнительных опций ActionBar стилей меню, обратитесь к этой ссылке

Ответ 3

Только для Android 3.0 и выше

Если вы поддерживаете только Android 3.0 и выше, вы можете определить фон панели действий следующим образом:

RES/значения/themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme" parent="@style/Theme.Holo.Light.DarkActionBar">
       <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

<!-- ActionBar styles -->
  <style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
       <item name="android:background">#ff0000</item>
  </style>
</resources>

Для Android 2.1 и выше

При использовании библиотеки поддержки ваш XML файл стиля может выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
  <!-- the theme applied to the application or activity -->
 <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
       parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@drawable/actionbar_background</item>

    <!-- Support library compatibility -->
    <item name="background">@drawable/actionbar_background</item>
  </style>
 </resources>

Затем примените свою тему для всего приложения или отдельных действий:    

для более подробной информации Documentaion

Ответ 4

Вы можете изменить цвет панели действий следующим образом:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/green_action_bar</item>
</style>

Это все, что вам нужно для изменения цвета панели действий.

Плюс, если вы хотите изменить цвет строки состояния, просто добавьте строку:

 <item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>

Вот скриншот, сделанный с сайта разработчика android, чтобы сделать его более понятным, и вот ссылка , чтобы узнать больше о настройке цветовой палитры

введите описание изображения здесь

Ответ 5

Другая возможность сделать.

actionBar.setBackgroundDrawable(новый ColorDrawable (Color.parseColor( "# 0000ff" )));

Ответ 6

Как я использовал AppCompatActivity выше ответы не сработали для меня. Но нижеследующее решение сработало:

В res/styles.xml

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
</style>


PS: Я использовал colorPrimary вместо android:colorPrimary

Ответ 7

Пользовательский цвет:

 <style name="AppTheme" parent="Theme.AppCompat.Light">

                <item name="colorPrimary">@color/ColorPrimary</item>
                <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
                <!-- Customize your theme here. -->
     </style>

Пользовательский стиль:

 <style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light">
        <item name="android:selectableItemBackground">@drawable/ad_selectable_background</item>
        <item name="android:popupMenuStyle">@style/MyPopupMenu</item>
        <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
        <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
        <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
        <item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
        <item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>
    </style>

Подробнее: Android ActionBar

Ответ 8

в style.xml добавить этот код

<resources>
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyAction</item>
    </style>

    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">#333333</item>
    </style>
</resources>

Ответ 9

Используйте это - http://jgilfelt.github.io/android-actionbarstylegenerator/

Хороший инструмент для настройки вашей панели действий с предварительным просмотром в течение нескольких минут.