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


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

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

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

9 72

9 ответов:

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

просто редактировать res / значения / стили.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 = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color

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

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

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

Я имею в виду библиотеку поддержки (APPCOMPAT)здесь:-- Так три темы 1. Совместимости Приложений Освещение Темы (тема.Совместимости приложений.Свет)

enter image description here

  1. AppCompat Темная Тема(Тема.Совместимости приложений),

enter image description here

  1. и гибрид между этими двумя, AppCompat Light Theme с более темной панелью действий.( Тема.Совместимости приложений.Свет.DarkActionBar)

AndroidManifest.xml и посмотреть тег, тема android является упоминается как:-- android: theme= "@style / AppTheme"

открыть стили.xml и у нас есть базовая тема приложения, объявленная там:--

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

нам нужно переопределить эти родительские элементы темы для стиля панели действий.

ActionBar с различным цветом фона:--

для этого нам нужно создать новый стиль MyActionBar (вы можете дать любое имя) с родительской ссылкой на @стиль/виджет.Совместимости приложений.Свет.Верхней панели.Твердый.Обратный который содержит характеристики стиля для элемента пользовательского интерфейса Android ActionBar. Так что определение будет

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

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

@style / MyActionBar ActionBar with pink background color

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

теперь, чтобы изменить цвет текста заголовка, нам нужно переопределить родительскую ссылку parent= " @style / TextAppearance.Совместимости приложений.Штучка.Верхней панели.Название">

так что определение стиля будет

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

мы будем ссылаться на это определение стиля внутри определение стиля MyActionBar, поскольку модификация TitleTextStyle является дочерним элементом верхней панели родительского элемента пользовательского интерфейса операционной системы. Так что окончательное определение Элемент стиля 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>

Итак, это окончательные стили.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 With white title color Для дальнейшего оформления меню параметров панели действий см. этой ссылке

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

при поддержке Android 3.0 и выше только, вы можете определить фон панели действий, как это:

res / значения / темы.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

вы можете изменить цвет панели действий на этом пути:

<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, чтобы сделать его более понятным, и вот ссылке чтобы узнать больше о настройке цветовой палитры

enter image description here

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

actionBar.setBackgroundDrawable (new ColorDrawable (Color.parseColor ("#0000ff")));

Изготовленный На Заказ Цвет:

 <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

как я использовал 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

в стиле.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>

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

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