31 votes

ActionBarSherlock - Arrière-plan personnalisé de la barre d'action avec diviseur

J'implémente ActionBarsherlock et je souhaite modifier l'arrière-plan de la barre d'actions.

Je remplace les propriétés mais le diviseur bleu disparaît. Comment utiliser un fond personnalisé avec le séparateur bleu?

 <style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">#ff3e3f3d</item>
    <item name="background">#ff3e3f3d</item>
</style>
 

76voto

DanielGrech Points 1205

Pour ceux qui (comme moi) n'aiment pas jouer avec des images de 9 patchs, vous pouvez placer le séparateur au bas de la barre d'action en utilisant un dessin XML:

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Bottom Line -->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_line_color" />
        </shape>
    </item>

    <!-- Color of your action bar -->
    <item android:bottom="2dip">
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>
 

Enregistrez ceci sous drawable / action_bar_background.xml, puis appliquez-le dans votre thème:

 <style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">@drawable/action_bar_background</item>
    <item name="background">@drawable/action_bar_background</item>
</style>
 

17voto

paiNie Points 2716

http://jgilfelt.github.io/android-actionbarstylegenerator/

Ce projet peut être utilisé pour générer le style ActionBar dont vous avez besoin.

7voto

Jake Wharton Points 26095

Le séparateur bleu est l’arrière-plan par défaut. C'est un dessin de 9 patchs qui garantira que la ligne apparaisse toujours au bas de la barre d'action, quelle que soit sa hauteur.

Pour votre cas, je copierais l’arrière-plan par défaut .png s d’Android, puis les modifierais de sorte que la section extensible du correctif 9 soit votre couleur d’arrière-plan cible. Cela remplira la barre d’action de la couleur de votre choix tout en maintenant la bordure bleue en bas.

3voto

Jordy Points 261

Juste une mise à jour sur la réponse fournie par DanielGrech. Il est également possible d'utiliser votre propre graphique personnalisé au bas de la barre d'actions. Comme ça:

     <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Bottom Line with custom graphic instead of a solid color-->
    <item android:drawable="@drawable/bar">
          <shape android:shape="rectangle"/>
    </item>

    <!-- Color of your action bar -->
    <item android:bottom="2dip">
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>
 

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