Fondo de icono de notificación grande


Desde Android 5.0 iconos grandes en las notificaciones tienen fondo de color:

lollipop-notificación

Para el icono pequeño, es el color de acento de la notificación (Notification.Builder.setColor(int)). ¿Cómo lo configuro para el icono grande? Es parte de la imagen real? Si lo es, ¿cuál debería ser el radio del círculo?

Author: Andrii Chernenko, 2014-11-17

2 answers

Sí, el color del icono grande es parte de la imagen real. Las dimensiones del icono grande en lollipop son 40x40dp con una vista óptica que llena toda la imagen. Por lo tanto, debe crear un activo de 40x40dp con un círculo de un radio de 20dp. Puede configurar el icono grande de la notificación de la siguiente manera:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.notification_small_icon)
    .setLargeIcon(notificationLargeIconBitmap)
    .setContentTitle("Notification")
    .setContentText("Content text")
    .setColor(context.getResources().getColor(R.color.accent_color));

Si necesita que el icono grande sea de un recurso de diseño, puede obtener una instancia Bitmap como esta:

Bitmap notificationLargeIconBitmap = BitmapFactory.decodeResource(
    context.getResources(), 
    R.drawable.notification_large_icon);

Si desea que su notificación se muestre bien con las versiones anteriores de android ( kitkat y por debajo de ), debe tener una versión cuadrada de su icono grande con una dimensión de 64x64dp.

 32
Author: alxscms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-22 13:42:55

Un icono grande siempre debe tener un fondo (es decir, avatar). También se usa en dispositivos wear como fondo para una notificación. Se muestra en diferentes colores de fondo, por lo tanto, debe ser una imagen no transparente.

 0
Author: notz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-19 17:56:48