113 votes

Android: Comment modifier l'ActionBar "Maison" Icône pour être autre chose que l'icône de l'application?

Ma principale de l'application icône se compose de deux pièces en une seule image: un logo et quelques lettres ci-dessous. Cela fonctionne bien pour l'icône de lancement de l'application, mais lorsque l'icône apparaît sur le bord gauche de l'ActionBar, les lettres coupé et il n'a pas l'air bon.

Je souhaite donner à l'ActionBar avec une autre version de l'icône, avec seulement le "logo" de la partie et de ne pas les lettres en dessous, mais jusqu'à présent, ont été à venir à vide. Honnêtement, je ne trouve pas de réponse à cette question, et je ne peux même pas trouver la question elle-même n'importe où.

218voto

Joe Points 20463

L'ActionBar va utiliser le android:logo de l' attribut de votre manifeste, si l'on est. Qui vous permet d'utiliser des drawable ressources pour l'icône (Lanceur) et le logo (ActionBar, parmi d'autres choses).

48voto

Dans AndroidManifest.xml:

<application
    android:icon="@drawable/launcher"
    android:label="@string/app_name"
    android:name="com..."
    android:theme="@style/Theme">...</Application>

Dans styles.xml: (Voir android:icon)

<style name="Theme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:icon">@drawable/icon</item>
</style>

8voto

TheIT Points 2022

Si vous utilisez AppCompat, la seule façon de définir l'ActionBar icône sur les appareils fonctionnant en pain d'épice de l'API (10) ou ci-dessous est par la mise en au android:icon attribut dans toutes les Activités dans votre manifeste ou de réglage de la dessinés par programmation.

<manifest>
    <application>
        ...
        <activity android:name="com.your.ActivityName"
            ...
            android:icon="@drawable/ab_logo"/>
        ...
   </application>
</manifest>

Mise à jour: soyez averti, cependant, que l'icône de l'application sera annulé si vous définissez la android:attribut d'icône sur le lancement de l'Activité. Le seul travail que je connaisse est d'avoir une éclaboussure ou factice Activité qui lance ensuite votre Activité principale.

8voto

proudgeekdad Points 1278

Inspiré par TheIT, je viens de recevoir ceci de travailler en manipulant le fichier de manifeste, mais un peu différente de la mode. Définir l'icône dans l'application réglages de sorte que la majorité des activités de l'icône. Sur l'activité de l'endroit où vous souhaitez afficher le logo, ajouter le android:logo de l'attribut à la déclaration d'activité. Dans l'exemple suivant, seulement LogoActivity ont le logo, pendant que les autres par défaut de l'icône.

<application
    android:name="com.your.app"
    android:icon="@drawable/your_icon"
    android:label="@string/app_name">

    <activity
        android:name="com.your.app.LogoActivity"
        android:logo="@drawable/your_logo"
        android:label="Logo Activity" >

    <activity
        android:name="com.your.app.IconActivity1"
        android:label="Icon Activity 1" >

    <activity
        android:name="com.your.app.IconActivity2"
        android:label="Icon Activity 2" >

</application>

Espérons que cela aide quelqu'un d'autre!

3voto

awariat Points 21

création de logo

dans les dossiers "drawable-..." créer dans l'ensemble de leur logo.png . L'emplacement des dossiers: VOTRE APP\app\src\main\res

Dans AndroidManifest.xml ajoutez la ligne: android:logo="@drawable/logo"

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:logo="@drawable/logo"
    ...

c'est tout.

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