Pregunta Cambiar el fondo del icono de notificación en Lollipop


Estaba pasando por el Patrón de diseño de notificaciones, y no encontré nada que habla sobre el fondo del icono de notificación. Como probablemente hayas notado, solo hay un fondo gris claro para las notificaciones personalizadas. Pero aplicaciones como Hangouts o simplemente la notificación de depuración de USB tienen un color personalizado para el fondo de su icono de notificación.

¿Hay alguna posibilidad de cambiar ese gris en algo más? (el color de ese círculo específico programáticamente)

See picture


74
2017-12-07 13:39


origen


Respuestas:


1) Obtener color

int color = 0xff123456;
int color = getResources().getColor(R.color.my_notif_color);
int color = ContextCompat.getColor(context, R.color.my_notif_color);

2) Establecer el color a la notificación

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
...
builder.setColor(color);
Notification notif = builder.build();

El color solo se respeta en Lollipop y solo afecta el fondo de el pequeño icono. Si se muestra un ícono grande, su contenido es enteramente su responsabilidad.

Fuente: NotificationCompat.Builder # setColor (int)


144
2017-12-07 16:16



si ha definido el color en colors.xml, entonces en su NotificationBuilder agregue valor como

.setColor(getResources().getColor(R.color.<YOUR_COLOR>))

Eso debería resolver tu problema. Solo afecta al fondo del icono.


8
2017-07-03 09:00



getColor(int) ha sido desaprobado en Resources

Ahora deberíamos usar una de estas alternativas:


2
2017-09-28 09:39