2012-04-28 2 views
31

J'implémente ActionBarsherlock et je veux changer l'arrière-plan de la barre d'action.ActionBarSherlock - barre d'action personnalisée fond avec diviseur

Je remplace les propriétés mais le diviseur bleu disparaît. Comment puis-je utiliser un fond personnalisé avec le diviseur 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> 

Répondre

7

Le diviseur bleu est l'arrière-plan par défaut. C'est un drawable à 9 patchs qui assure que la ligne apparaîtra toujours au bas de la barre d'action, quelle que soit sa hauteur.

Pour votre situation, je voudrais copier l'arrière-plan par défaut .png s d'Android, puis les modifier afin que la section extensible du 9-patch soit la couleur d'arrière-plan de votre cible. Cela remplira la barre d'action avec la couleur désirée tout en maintenant la bordure bleue en bas.

+0

Merci, je vais copier l'arrière-plan par défaut et les modifier. – ikarius

76

Pour tous ceux qui (comme moi) n'aime pas jouer avec 9 images patch, vous pouvez obtenir le diviseur au bas de la barre d'action en utilisant un xml drawable:

<?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> 

Enregistrer ce que drawable/action_bar_background.xml, puis appliquez 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> 
+0

C'était exactement ce que je cherchais! – Karen

+0

Vous cherchez une semaine pour quelque chose comme ça, c'est vraiment bon! –

+0

comment appliquer dans notre thème, mettre à jour le code –

17

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

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

+1

Merci beaucoup pour cette C'est exactement ce que je cherchais, ça rend les choses beaucoup plus faciles! – AndroidNoob

+0

Merci beaucoup pour le partage. C'est exactement ce dont j'avais besoin! – Vivendi

+0

Y at-il un tutoriel sur la façon d'utiliser ?? Je n'ai aucune idée où copier ces images et les définir. –

3

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

<?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> 
Questions connexes