Comment définir custom ActionBar couleur / style?
j'utilise Android Navigation bar
dans mon projet,
Je veux changer la couleur du haut de la barre d'action en quelque chose de rouge, Comment puis-je faire cela?
J'ai quelque chose comme ça,
et je veux quelque chose comme ça,
comment puis-je y parvenir?
9 réponses
vous pouvez définir la couleur de la barre D'action (et d'autres choses) par création d'un Style personnalisé :
éditez simplement le res/values/styles.fichier xml 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>
Ensuite, mettez "MyCustomTheme" comme thème de votre activité qui contient la barre d'action.
vous pouvez également définir un couleur pour L'ActionBar comme ceci:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
tiré de ici: Comment changer la couleur de fond de la barre D'Actiond'une Activitépour Actionen utilisant XML?
en général, Android OS utilise un" thème " pour permettre aux développeurs d'applications d'appliquer globalement un ensemble universel de paramètres de style D'éléments UI aux applications Android dans leur ensemble, ou, alternativement, à une seule sous-classe D'activité.
il y a donc trois "thèmes de système" pour Android OS, que vous pouvez spécifier dans votre fichier Android Manifest XML lorsque vous développez des applications pour la Version 3.0 et les versions suivantes
je fais référence au (APPCOMPAT)bibliothèque de soutien ici:-- Ainsi, les trois thèmes sont 1. AppCompat Light Thème (Thème.AppCompat.De la lumière)
- AppCompat Thème Sombre(Thème.AppCompat),
- et un hybride entre ces deux, AppCompat thème léger avec le plus Sombre de ActionBar.( Thème.AppCompat.Lumière.DarkActionBar)
AndroidManifest.xml et de voir le tag, le thème android est mentionné que:-- android:thème="@style/AppTheme"
ouvrir les Styles.xml et nous avons le thème d'application de base déclaré ici: --
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
nous devons outrepasser ces éléments du thème parent pour styliser la barre d'action.
ActionBar avec fond de couleur différente: --
pour ce faire, nous avons besoin de créer un nouveau style MyActionBar(vous pouvez donner n'importe quel nom) avec une référence de parent @style/Widget.AppCompat.Lumière.ActionBar.Solide.Inverse qui détient les caractéristiques de style pour L'élément ActionBar UI Android. 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 nous devons faire référence dans notre Appthème, pointant vers dépassé ActionBar style que:
changer la couleur du texte de la barre de titre (E. g noir à blanc):--
maintenant, pour changer la couleur du titre du texte, nous devons remplacer la référence parent parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Titre " >
So la définition du style serait
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
nous ferons référence à cette définition de style à l'intérieur de la définition de style MyActionBar , puisque la modification TitleTextStyle est un élément enfant d'un élément parent OS UI 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 style final.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 plus D'ActionBar options style Menu, se référer à ce lien
pour Android 3.0 et supérieur seulement
lorsque vous supportez Android 3.0 et supérieur seulement, vous pouvez définir le fond de la barre d'action comme ceci:
res/values/thèmes.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
lors de l'utilisation de la bibliothèque de Soutien, votre fichier XML de style pourrait 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>
alors appliquer votre thème à l'ensemble de votre application ou activités individuelles:
pour plus de détails Documentaion
vous pouvez changer la couleur de la barre d'action de cette façon:
<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.
Plus si vous voulez changer la couleur de la barre d'état il suffit d'ajouter la ligne:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
Voici une capture d'écran Prise À partir de développeur android site pour le rendre plus clair, et voici un lien pour en savoir plus sur la personnalisation de la couleur palete
une Autre possibilité de faire.
actionBar.setbackground drawable (new ColorDrawable (Color.parseColor ("#0000ff")));
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>
Personnaliser Le 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>
Pour Plus De Détails: Android ActionBar
comme j'utilisais AppCompatActivity
ci-dessus, les réponses n'ont 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 de android:colorPrimary
dans le style.ajouter 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>
utilisez ceci - http://jgilfelt.github.io/android-actionbarstylegenerator/
Bon outil pour personnaliser votre actionbar avec un aperçu en direct dans quelques minutes.