2010-04-09 13 views
23

Estoy tratando de agregar insignias a los iconos en mi aplicación de Android. p.ej. en la aplicación de Facebook (para iPhone), en la página de inicio aparece el número de solicitudes pendientes en el ícono de solicitudes.Android: agregue una insignia a los iconos internos de mi aplicación

¿Alguien puede proporcionar algún enlace/idea sobre cómo hacer esto?

Gracias

+1

¿Ha cambiado algo en 2016? ¿Tenemos una biblioteca ahora? –

+0

Pregunta similar con buenos answeres: http://stackoverflow.com/questions/17565307/ – porfirion

Respuesta

7

Android no admite insignias en los iconos.

En su lugar, proporciona el sistema de notificación (iconos en la barra de notificaciones, etc.), así como la capacidad de crear widgets que se pueden agregar al "escritorio" de los usuarios.

20

Si realmente quieres hacerlo. Use un FrameLayout que contiene un ImageView con su icono y un TextView con un dibujo de nueve parches como fondo en la esquina derecha. Agregue los márgenes al ImageView si desea que la insignia esté un poco fuera del ícono.

+0

Muy genial, tendrá que instalar ese. – synic

+0

¿Y cómo creo el fondo con texto debajo del widget? – chrisonline

+0

@alexanderblom - http://alexanderblom.se/gmail-unread-count/ no está funcionando ahora ... puede proporcionar uno nuevo ... de hecho, quería que esta funcionalidad se implementara en TabHost –

8

Gracias Alexanderblom, por las sugerencias. Utilicé esa lógica y logré crear una insignia en una imagen interna. Aquí está el archivo xml. Y solo tiene que crear un círculo rojo en la dibujable.

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

y la circle.xml es

<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

siguen a continuación definen los pasos para el recuento de notificación añadir a aplicación icono

pasos:

  1. Añadir mavenCentral a su escritura de la estructura.

    repositorios {mavenCentral()}

  2. Añadir dependencias en su Gradle aplicación.

    dependencias de compilación { 'me.leolin: ShortcutBadger: [email protected]' o compilación 'me.leolin: ShortcutBadger: [email protected]' }

  3. añadir los códigos a continuación para Mostrar cuenta de notificación en el icono de la aplicación:

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

  4. Si desea quitar la placa

    ShortcutBadger.removeCount (contexto); // para 1.1.4 ShortcutBadger.with (getApplicationContext()). remove(); // para 1.1.3 o ShortcutBadger.applyCount (contexto, 0); // para 1.1.4 ShortcutBadger.with (getApplicationContext()). count (0); // para 1.1.3

Cuestiones relacionadas