He utilizado este código simple para establecer una Notificación en Android 4.1 o superior.
Funciona bien, pero mi problema viene con SmallIcon y LargeIcon.
Entiendo que SmallIcon se muestra en la barra de estado y la LargeIcon se muestra en la lista desplegable.

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setTicker("The ticker");
builder.setContentTitle("The title");
builder.setContentText("The text");
builder.setSmallIcon(R.drawable.my_small_icon);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.my_96px_large_icon);
builder.setLargeIcon(bm);       
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify("direct_tag", NOTIF_ALERTA_ID, builder.build());

Mi problema es:

  1. Cuando la notificación se pone en marcha, una recortada de gran tamaño Pequeño Icono que se muestra al lado «de La barra de mensajes de texto», en lugar de mostrar el original SmallIcon sin sobredimensionamiento de la misma.
    NotificationCompat 4.1 SetSmallIcon y SetLargeIcon

  2. En la lista desplegable veo la LargeIcon a la izquierda, eso es bueno. Pero también veo que el pequeño icono a la derecha, junto a la hora de la notificación. No quiero mostrar que.
    NotificationCompat 4.1 SetSmallIcon y SetLargeIcon

  • Estoy teniendo dificultad para resolver esto, cualquier posibilidad de que usted puede aclarar qué es necesario? El aceptó la respuesta no totalmente dime qué hacer
  • ¿el builder.setSmallIcon(0); trabajo para usted? Se debe desactivar el icono pequeño cuando se utiliza uno.
  • ¿Por qué no acaba de establecer un completo archivo de imagen transparente?
InformationsquelleAutor Ton | 2012-12-12

5 Comentarios

  1. 29
    1. En mi aplicación me proporcionan grandes (128×128 px), PNG imagen como icono pequeño, y muestra a escala y sin recortar. Es su imagen definida en el archivo de mapa de bits o tal vez como recurso XML? En XML se pueden especificar varios aspectos de visualización (por ejemplo, los recortes). Revise su XML o simplemente utilizar PNG/JPG.

    2. Como Android documentación de la API de Notificación.setSmallIcon() dice claramente:

      Establecer el pequeño icono de los recursos, que serán utilizados para representar la notificación en la barra de estado. La plataforma de la plantilla para la vista ampliada se dibuja a este icono de la izquierda, a menos que un gran icono también se ha especificado, en cuyo caso, el icono pequeño se trasladó a la mano derecha.

    AFAIK no hay manera de que usted puede reemplazar el comportamiento, a menos que usted proporcione su propia plantilla de notificación (a través de De notificación.setContent()

  2. 15

    Hay una forma de evitar esta curiosa aplicación. En lugar de utilizar setLargeIcon usar este:

    Notification notification=notificationBuilder.build()
    notification.contentView.setImageViewResource(android.R.id.icon, R.drawable.your_large_icon);
    • Buen truco. No pasa por la maquinaria de pequeño y gran icono de la interacción y simplemente modifica el imageview después de la notificación es construido.
    • Obsoleto. Pero al parecer puede utilizar NotificationCompat.El generador.setCustomContentView(RemoteViews) en su lugar.
  3. 9

    Me imagino que este es el comportamiento esperado.

    Usted debe comprobar para ver que su pequeño icono sigue las directrices de experiencia para el tamaño de los iconos. Iconos pequeños se limitan a 24x24dp.

    El comportamiento predeterminado de una ampliación de la notificación es para mostrar el icono grande y el pequeño icono. No estoy seguro de que hay una manera de deshacerse de el pequeño icono, pero ¿por qué es esto importante?

    • Es importante porque mi aplicación es la única que muestra que el pequeño icono al lado de la hora.
    • Me fijo en mi app con el mismo icono GRANDE que tengo todo este tiempo, y la ampliación de mi PEQUEÑO icono de abajo a 24x24dp (por ejemplo, 24 por 24 píxeles). Muchas gracias por este tamaño de la nota, como yo lo veo en ningún otro lugar.
    • Dónde están los UX guias?
    • UX guias developer.android.com/guide/practices/ui_guidelines/…
  4. 1

    En mi caso, acabo de crear mi icono rojo como el gran icono y el setColor a Color.BLANCO y establezca un icono blanco como mi pequeño icono. De esa manera, en el área de notificaciones, a mi el rojo se muestra el icono y el icono en blanco es «desapareció».

    Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.app_logo);
    
    mBuilder.setContentIntent(resultPendingIntent).setColor(Color.WHITE).setLargeIcon(icon);

Dejar respuesta

Please enter your comment!
Please enter your name here