Je veux créer un Actionbar_style.xml pour mon application et je voudrais utiliser un logo différent de celui de mon application.
Comment le changer par programme est clair: Changer le logo qui apparaît dans Android ActionBar par programme Mais comme ça, je devrais coder cela dans chaque activité.
Existe-t-il déjà une balise xml pour définir un Actionbarlogo personnalisé en xml?
mes Customstyles.xml
<style name="CustomActionBar0" parent="Android:style/Widget.Holo.Light.ActionBar">
<item name="Android:background">@drawable/action_bg0</item>
</style>
Android styles.xml ne semble pas l'avoir ...
<style name="Widget.ActionBar">
<item name="Android:background">@Android:drawable/action_bar_background</item>
<item name="Android:displayOptions">useLogo|showHome|showTitle</item>
<item name="Android:divider">@Android:drawable/action_bar_divider</item>
<item name="Android:height">?android:attr/actionBarSize</item>
<item name="Android:paddingLeft">0dip</item>
<item name="Android:paddingTop">0dip</item>
<item name="Android:paddingRight">0dip</item>
<item name="Android:paddingBottom">0dip</item>
<item name="Android:titleTextStyle">@Android:style/TextAppearance.Widget.ActionBar.Title</item>
<item name="Android:subtitleTextStyle">@Android:style/TextAppearance.Widget.ActionBar.Subtitle</item>
<item name="Android:progressBarStyle">@Android:style/Widget.ProgressBar.Horizontal</item>
<item name="Android:indeterminateProgressStyle">@Android:style/Widget.ProgressBar.Small</item>
<item name="Android:homeLayout">@Android:layout/action_bar_home</item>
</style>
Définissez simplement une valeur pour l'attribut Android: icon
<style name="AppTheme" parent="@Android:style/Theme.Holo.Light">
<item name="Android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>
<style name="AppTheme.ActionBarStyle" parent="Android:style/Widget.Holo.Light.ActionBar">
<item name="Android:background">@drawable/actionbar_background</item>
<item name="Android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
<item name="Android:icon">@drawable/ic_home</item>
<item name="Android:indeterminateProgressStyle">@style/IndeterminateProgress</item>
</style>
Vous ne stylisez pas le logo dans le XML de votre style, vous utilisez simplement Android:logo
Dans votre manifeste, puis utilisez setDisplayUseLogoEnabled()
pour le définir dans ActionBar
. Voici un projet, de Google, qui vous montre comment basculer entre les deux. http://code.google.com/p/styled-action-bar/
On dirait que vous devez utiliser une disposition personnalisée pour la barre d'action, de cette façon, vous pouvez définir ce que vous voulez pour l'image du logo.
Barre d'action/Barre d'action Style Sherlock
<style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="displayOptions">showCustom</item>
<item name="Android:displayOptions">showCustom</item>
<item name="customNavigationLayout">@layout/action_bar_home_icon_default</item>
<item name="Android:customNavigationLayout">@layout/action_bar_home_icon_default</item>
</style>
@ layout/action_bar_home_icon_default est votre mise en page personnalisée, avec votre logo personnalisé