Vous pouvez définir la couleur de l'ActionBar (et d'autres éléments) en créant un style personnalisé :
Il suffit de modifier la résolution / valeurs / styles.xml fichier de votre projet Android.
Par exemple comme ceci:
<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>
Définissez ensuite "MyCustomTheme" comme thème de votre activité qui contient l'ActionBar.
Vous pouvez également définir une couleur pour l'ActionBar comme ceci:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED));
Tiré de là: Comment changer la couleur d'arrière-plan de l'ActionBar d'un ActionBarActivity à l'aide de XML?
setTheme(R.style.MyCustomTheme)
dans la méthode onCreate de votre activité.En général, Android OS exploite un «thème» pour permettre aux développeurs d'applications d'appliquer globalement un ensemble universel de paramètres de style d'éléments d'interface utilisateur aux applications Android dans leur ensemble, ou, en variante, à une seule sous-classe d'activité.
Il existe donc trois «thèmes système» courants du système d'exploitation Android, que vous pouvez spécifier dans votre fichier XML de manifeste Android lorsque vous développez des applications pour la version 3.0 et les versions ultérieures.
Je fais référence à la bibliothèque de support (APPCOMPAT) ici: - Donc, les trois thèmes sont 1. Thème AppCompat Light (Theme.AppCompat.Light)
AndroidManifest.xml et voir la balise, le thème Android est mentionné comme suit : - android: theme = "@ style / AppTheme"
Ouvrez le Styles.xml et nous y avons déclaré le thème d'application de base: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> </style>
Nous devons remplacer ces éléments de thème parent pour styliser la barre d'action.
ActionBar avec fond de couleur différente: -
Pour ce faire, nous devons créer un nouveau style MyActionBar (vous pouvez donner n'importe quel nom) avec une référence parent à @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse qui contient les caractéristiques de style de l'élément d'interface utilisateur Android ActionBar. Donc la définition serait
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> </style>
Et cette définition que nous devons référencer dans notre AppTheme, pointant vers le style ActionBar remplacé comme--
Changez la couleur du texte de la barre de titre (par exemple du noir au blanc): -
Maintenant, pour changer la couleur du texte du titre, nous devons remplacer la référence parent parent = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title">
La définition du style serait donc
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/white</item> </style>
Nous référencerons cette définition de style dans la définition de style MyActionBar , car la modification TitleTextStyle est un élément enfant d'un élément d'interface utilisateur du système d'exploitation parent ActionBar. Ainsi, la définition finale de l'élément de style MyActionBar sera
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> <item name="titleTextStyle">@style/MyActionBarTitle</item> </style>
Donc c'est le final 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>
Pour d'autres options ActionBar Style de menu, reportez - vous à ce lien
la source
Pour Android 3.0 et supérieur uniquement
Lorsque vous prenez en charge Android 3.0 et supérieur uniquement, vous pouvez définir l'arrière-plan de la barre d'action comme suit:
res / values / 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>
Pour Android 2.1 et supérieur
Lorsque vous utilisez la bibliothèque de support, votre fichier XML de style peut ressembler à ceci:
<?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>
Ensuite, appliquez votre thème à l'ensemble de votre application ou à des activités individuelles:
pour plus de détails Documentaion
la source
No resource found that matches the given name '@style/Widget.Holo.Light.ActionBar.Solid.Inverse'.
modifier pourandroid:style/Widget.Holo.Light.ActionBar.Solid.Inverse
résoudre le problème. Merci.Vous pouvez changer la couleur de la barre d'action de cette manière:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/green_action_bar</item> </style>
C'est tout ce dont vous avez besoin pour changer la couleur de la barre d'action.
De plus, si vous souhaitez modifier la couleur de la barre d'état, ajoutez simplement la ligne:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
Voici une capture d'écran prise sur le site Android du développeur pour le rendre plus clair, et voici un lien pour en savoir plus sur la personnalisation de la palette de couleurs
la source
Une autre possibilité de faire.
actionBar.setBackgroundDrawable (nouveau ColorDrawable (Color.parseColor ("# 0000ff")));
la source
Je peux changer la couleur du texte ActionBar en utilisant titleTextColor
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="titleTextColor">#333333</item> </style>
la source
Couleur personnalisée:
<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 personnalisé:
<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>
Pour plus: Android ActionBar
la source
Comme j'utilisais les
AppCompatActivity
réponses ci-dessus, cela n'a pas fonctionné pour moi. Mais la solution ci-dessous a fonctionné:Dans 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: j'ai utilisé
colorPrimary
au lieu deandroid:colorPrimary
la source
dans le style.xml ajoutez ce code
<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>
la source
Utilisez ceci - http://jgilfelt.github.io/android-actionbarstylegenerator/
Bon outil pour personnaliser votre barre d'action avec un aperçu en direct en quelques minutes.
la source