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)
- Thème sombre AppCompat (Theme.AppCompat),
- Et un hybride entre ces deux, AppCompat Light Theme avec Darker ActionBar. (Theme.AppCompat.Light.DarkActionBar)
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--
@ style / MyActionBar
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>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<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