J'ai hérité du thème Holo Light et personnalisé l'arrière-plan de l'ActionBar avec les éléments suivants:
Contenu de styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ActionBar" parent="@Android:style/Widget.Holo.ActionBar">
<item name="Android:background">@drawable/actionbar_background</item>
</style>
<style name="MyTheme" parent="@Android:style/Theme.Holo.Light">
<item name="Android:actionBarStyle">@style/ActionBar</item>
</style>
</resources>
Contenu de actionbar_background.xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@raw/actionbar_background"
Android:tileMode="repeat" />
Au lieu d'être répétée, l'image est étirée, aucune idée de pourquoi Android: tileMode = "repeat" n'est pas appliquée?
Merci d'avance
Ok, merci à Romain Guy sur # Android-dev IRC channel, c'est un bug connu sur honeycomb/Android 3.0 qui sera corrigé dans la prochaine version). Depuis lors, la seule solution est de le faire à partir du code, et ça marche :-)
final ActionBar actionBar = getActionBar();
BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.raw.actionbar_background));
background.setTileModeX(Android.graphics.Shader.TileMode.REPEAT);
actionBar.setBackgroundDrawable(background);
Drawable d=getResources().getDrawable(R.drawable.background_image_name);
getActionBar().setBackgroundDrawable(d);
Le code ci-dessus définit l'image d'arrière-plan de la barre d'action.
J'espère que ça aide.
Vous pouvez facilement faire cette chose. Si vous souhaitez modifier l'image d'arrière-plan de la barre d'actions, placez ce code dans votre fichier res/styles.xml.
<style name="Theme.MyAppTheme" parent="@Android:style/Theme.Holo">
<item name="Android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item>
</style>
<style name="Theme.MyAppTheme.ActionBar" parent="@Android:style/Widget.Holo.ActionBar">
<item name="Android:background">@drawable/top_black_bg</item>
</style>
Pour cela, vous devez sélectionner une image dans le dossier "dessinable". Ici, je sélectionne une image "tp_black_bg.png"
Après cela, n'oubliez pas de déclarer ce thème dans votre fichier AndroidManifest.xml
<application
.
.
.
Android:theme="@style/Theme.MyAppTheme" >.............</application>
Vous pouvez maintenant rouvrir n'importe quel fichier de disposition XML, vous pouvez facilement voir l'effet. De la même manière, vous pouvez également modifier la couleur d'arrière-plan d'ActionBar.
Merci.
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
Utilisez getSupportActionBar () à partir d'Android.support.v7 pour une compatibilité descendante.