2010-04-09 9 views
23

J'essaie d'ajouter des badges aux icônes de mon application Android. par exemple. dans l'application facebook (pour iPhone), sur la page d'accueil, le nombre de demandes en attente est affiché sur l'icône des demandes.Android: ajouter un badge aux icônes internes de mon application

Quelqu'un peut-il fournir des liens ou des idées sur la façon de procéder?

Merci

+1

Si quelque chose avait changé en 2016, avons-nous maintenant une bibliothèque? –

+0

Question similaire avec de bonnes réponses: http://stackoverflow.com/questions/17565307/ – porfirion

Répondre

7

Android ne prend pas en charge les badges sur les icônes. Au lieu de cela, il fournit le système de notification (icônes dans la barre de notification, etc), ainsi que la possibilité de créer widgets qui peut être ajouté au "bureau" des utilisateurs.

20

Si vous voulez vraiment le faire. Utilisez un FrameLayout qui contient un ImageView avec votre icône et un TextView avec un neuf dessinable comme arrière-plan dans le coin droit. Ajoutez des marges au ImageView si vous souhaitez que le badge soit légèrement en dehors de l'icône.

+0

Très cool, va devoir installer celui-là. – synic

+0

Et comment puis-je créer l'arrière-plan avec du texte sous le widget? – chrisonline

+0

@alexanderblom - http://alexanderblom.se/gmail-unread-count/ ne fonctionne pas maintenant .. pouvez-vous s'il vous plaît fournir un nouveau .. en fait, je voulais cette fonctionnalité à mettre en œuvre sur TabHost –

8

Merci Alexanderblom, pour les hints.i utilisé cette logique et réussi à créer un badge sur un imageicon interne.il y a le fichier xml. Et vous devez simplement créer un cercle rouge sur le drawable.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/frameLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 


    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="20dip" 
     android:layout_height="20dip" 
     android:text="5" 
     android:textColor="@color/black" 
     android:textStyle="bold" 
     android:padding="2sp" 
     android:gravity="center" 
     android:background="@drawable/circle" 
     android:layout_gravity="top|right" /> 

</FrameLayout> 

et circle.xml est

<item> 
    <shape android:shape="oval"> 
     <solid android:color="@android:color/black" /> 
    </shape> 
</item> 
<item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp"> 
    <shape android:shape="oval"> 
     <solid android:color="@color/Red" /> 

    </shape> 
</item> 
0

suivre ci-dessous définissent les étapes pour ajouter le nombre de notification à l'application icône

Étapes:

  1. Ajouter mavenCentral à votre script de construction.

    dépôts {mavenCentral()}

  2. Ajouter dépendances dans votre application gradle.

    dépendances { compilation 'me.leolin: ShortcutBadger: [email protected]' ou compilation 'me.leolin: ShortcutBadger: [email protected]' }

  3. Ajouter les codes ci-dessous pour afficher le nombre de notifications sur l'icône de l'application:

    int badgeCount = 1; ShortcutBadger.applyCount (context, badgeCount); // pour 1.1.4 ou ShortcutBadger.with (getApplicationContext()). count (badgeCount); // pour 1.1.3

  4. Si vous voulez supprimer le badge

    ShortcutBadger.removeCount (contexte); // pour 1.1.4 ShortcutBadger.with (getApplicationContext()). remove(); // pour 1.1.3 ou ShortcutBadger.applyCount (context, 0); // pour 1.1.4 ShortcutBadger.with (getApplicationContext()). count (0); // pour 1.1.3

Questions connexes