web-dev-qa-db-fra.com

Icône d'accueil personnalisée dans la barre d'action Sherlock

J'essaie de définir une icône personnalisée pour l'icône de la maison à l'aide de Bibliothèque ActionBarSherlock . J'ai essayé de définir une présentation personnalisée à l'aide de l'attribut abHomeLayout dans mon thème personnalisé. Mais cela n'a pas fonctionné pour moi. La seule façon, pour le définir, consiste à définir l'attribut abIcon pour mon dessin personnalisable, mais je ne peux pas définir de remplissage horizontal pour ce dessinable. Existe-t-il un exemple pour cela ou où pourrait-il y avoir un problème avec l'attribut abHomeLayout?

30
sealskej

Cela fonctionne dans mon cas, il remplace l'icône ic_launcher par défaut dans la barre d'actions par celle personnalisée. 

Dans votre onCreate, faites ceci:

getSupportActionBar().setIcon(R.drawable.audio_shortcut);

Ou dans le manifeste, vous pouvez définir le logo:

<activity>
    Android:logo="@drawable/my_custom_logo"
    ...
</activity>
40
Matthew

Cela fonctionne très bien aussi:

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="Android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="icon">@drawable/my_custom_logo</item>
    <item name="Android:icon">@drawable/my_custom_logo</item>
</style>

Référence: Comment changer l'icône “Home” de la barre Action pour qu'elle soit autre chose que l'icône de l'application?

5
Brais Gabin

J'avais un problème similaire avec un remplissage incorrect de l'icône de la maison sur les périphériques api <11 (c'est-à-dire pas la barre d'action de la plate-forme à part entière) et le style abHomeLayout ne fonctionnait que par api> 11

Ma solution a été de copier la disposition abs__action_bar_home.xml de ABS vers un projet enfant et d'ajouter manuellement un remplissage à la abs__home imageview

<ImageView
    Android:id="@+id/abs__home"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:paddingTop="@dimen/action_bar_home_icon_top_bottom_padding"
    Android:paddingBottom="@dimen/action_bar_home_icon_top_bottom_padding"
    Android:paddingLeft="@dimen/action_bar_home_icon_left_right_padding"
    Android:paddingRight="@dimen/action_bar_home_icon_left_right_padding"
    Android:scaleType="centerInside" />
0
scottyab