Dans mon application android, je tiens la barre de titre de la norme de base/décoloration.
Pour changer la couleur de texte vous avez `` , est-il possible de changer la couleur d’arrière-plan de la barre ?
Dans mon application android, je tiens la barre de titre de la norme de base/décoloration.
Pour changer la couleur de texte vous avez `` , est-il possible de changer la couleur d’arrière-plan de la barre ?
Ce fil vous permettra de commencer avec la construction de votre propre barre de titre dans un fichier xml et de les utiliser dans vos activités
Modifier
Voici un bref résumé du contenu du lien ci - dessus- C'est juste pour définir la couleur du texte et de l'arrière-plan de la barre de titre - pas de redimensionnement, pas de boutons, juste le principe le plus simple échantillon
res/layout/mytitle.xml - C'est la vue qui représentera la barre de titre
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTitle"
android:text="This is my new title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/titletextcolor"
/>
res/values/themes.xml - Nous voulons conserver la valeur par défaut d'android thème et juste changer la couleur d'arrière-plan de l'arrière-plan du titre. Nous avons donc créer un thème qui hérite le thème par défaut et définir le style d'arrière-plan de notre propre style.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="customTheme" parent="android:Theme">
<item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
</style>
</resources>
res/values/styles.xml - C'est là que nous nous sommes fixé le thème de l'utilisation de la couleur que nous voulons pour l'arrière-plan du titre
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="WindowTitleBackground">
<item name="android:background">@color/titlebackgroundcolor</item>
</style>
</resources>
res/values/colors.xml - choisir la couleur que vous voulez
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="titlebackgroundcolor">#3232CD</color>
<color name="titletextcolor">#FFFF00</color>
</resources>
Dans le AndroidMANIFEST.xml, définir le thème de l'attribut, soit dans l'application (pour l'ensemble de l'application) ou l'activité (seulement cette activité) tags
<activity android:name=".CustomTitleBar" android:theme="@style/customTheme" ...
À partir de l'Activité (appelé CustomTitleBar) :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
}
Merci pour cette explication claire, cependant je voudrais ajouter un peu plus pour votre réponse en posant une question liée (n'a pas vraiment envie de faire un nouveau post comme celui-ci est le sous-sol, sur ma question).
Je suis en déclarant ma barre de titre dans une super-classe à partir de laquelle, tous mes autres activités sont des enfants, d'avoir à changer la couleur de la barre qu'une seule fois. Je voudrais également ajouter une icône et modifier le texte dans la barre. J'ai fait quelques tests, et ont réussi à changer l'un ou l'autre mais pas les deux en même temps (à l'aide de setFeatureDrawable et setTitle). L'idéal serait bien sûr de suivre les explications dans le thread donné dans le lien, mais comme je suis en déclarant dans une super-classe, j'ai un problème, en raison de la mise en page dans setContentView et la R. id.myCustomBar, parce que si je me souviens bien, je peux appeler setContentView qu'une seule fois...
MODIFIER Trouvé ma réponse :
Pour ceux qui, comme moi, aiment travailler avec des super-classes, car il est idéal pour obtenir un menu est disponible partout dans une application, il fonctionne de la même manière ici.
Juste ajouter ceci à votre super-classe:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.customtitlebar);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customtitlebar);
customTitleText = (TextView) findViewById(R.id.customtitlebar);
(vous devez déclarer le textview comme variable de classe protégée)
Et puis la puissance de cette est que, partout dans votre application (si, par exemple, toutes vos activités sont les enfants de cette classe), il vous suffit d'appeler
customTitleText.setText("Whatever you want in title");
et votre barre de titre sera édité.
Le XML associé dans mon cas, c'est (R. layout.customtitlebar) :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/background">
<ImageView android:layout_width="25px" android:layout_height="25px"
android:src="@drawable/icontitlebar"></ImageView>
<TextView android:id="@+id/customtitlebar"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:text="" android:textColor="@color/textcolor" android:textStyle="bold"
android:background="@color/background" android:padding="3px" />
</LinearLayout>
Il y a une autre façon de changer la couleur d’arrière-plan, cependant il y a une entaille et peut échouer sur les futures versions d’Android if la hiérarchie d’affichage de la fenêtre et son titre est changé. Toutefois, le code ne sera pas tomber en panne, juste manquer définissant la couleur recherchée, dans un tel cas.
Dans votre activité, comme onCreate, procédez comme :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.