44 votes

Image de fond ActionBar

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

43voto

rnoway Points 3636

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

42voto

Raj Trivedi Points 326
 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.

5voto

Satyaki Mukherjee Points 1128

Vous pouvez facilement faire cette chose. Si vous désirez modifier l'image d'arrière-plan de la Barre d'Action, puis vous placez ce code à votre res/styles.xml fichier.

 <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 à partir de "drawable" le dossier . Ici, je sélectionner une image "tp_black_bg.png"

Après cela, n'oubliez pas de déclarer ce thème à votre AndroidManifest.xml fichier

    <application
        .
        .
        .
        android:theme="@style/Theme.MyAppTheme" >.............</application>

Maintenant, vous pouvez rouvrir toute XML fichier de mise en page , vous pouvez facilement voir l'effet. De la même façon, vous pouvez également en mesure de modifier la couleur d'arrière-plan de l'ActionBar.

Merci.

Prograide.com

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.

Powered by:

X