Estaba revisando el patrón de diseño de notificaciones y no encontré nada que hable sobre el fondo del icono de notificación. Como probablemente haya notado, solo hay un fondo gris claro para notificaciones personalizadas. Pero aplicaciones como Hangouts o simplemente la notificación de depuración USB tienen un color personalizado para el fondo del icono de notificación.
¿Existe alguna posibilidad de convertir ese gris en otra cosa? (el color de ese círculo específico mediante programación)
android
android-notifications
android-5.0-lollipop
Zsolt Boldizsár
fuente
fuente
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) Establezca el color de la notificación
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); ... builder.setColor(color); Notification notif = builder.build();
El color se respeta solo en Lollipop y solo afecta el fondo del icono pequeño . Si se muestra un icono grande, su contenido es responsabilidad exclusiva de usted.
Fuente: NotificationCompat.Builder # setColor (int)
fuente
LOLLIPOP
. 2) Esto no afecta la imagen proporcionada por usted ensetLargeBitmap
. Solo colorea el fondo del icono pequeño.si ha definido el color en colors.xml, 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.
fuente
getColor(int)
ha sido obsoleto enResources
Ahora deberíamos usar una de estas alternativas:
Resources
's getColor (int, Tema)ContextCompat
's getColor (contexto de contexto, int id)fuente