android example Image de fond ActionBar




toolbar android example (4)

J'ai hérité du thème Holo Light et personnalisé l'arrière-plan de la barre d'actions 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é?

Merci d'avance


mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));

Utilisez getSupportActionBar () à partir de android.support.v7 pour assurer la compatibilité avec les versions antérieures.


Ok, merci à Romain Guy sur le canal IRC # android-dev, il s’agit d’un bogue connu de honeycomb / Android 3.0 qui sera corrigé dans la prochaine version. Depuis lors, la seule solution est de le faire à partir de code, et cela fonctionne :-)

 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);

Vous pouvez facilement faire cette chose. Si vous souhaitez modifier l’image d’arrière-plan de la barre d’action, 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". Je sélectionne ici 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>

Maintenant, vous pouvez rouvrir n'importe quel fichier de mise en page XML, vous pouvez facilement voir l'effet. De la même manière, vous pouvez également modifier la couleur de fond de la barre d’action.

Merci.





android-actionbar