Je parcourais le modèle de conception des notifications , et je n'ai rien trouvé qui parle du fond de l'icône de notification. Comme vous l'avez probablement remarqué, il n'y a qu'un fond gris clair pour les notifications personnalisées. Mais les applications comme Hangouts, ou simplement la notification de débogage USB, ont une couleur personnalisée pour l'arrière-plan de leur icône de notification.
Est-il possible de changer ce gris en quelque chose d'autre? (la couleur de ce cercle spécifique par programme)
int color = 0xff123456;
int color = getResources().getColor(R.color.my_notif_color);
int color = ContextCompat.getColor(context, R.color.my_notif_color);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
...
builder.setColor(color);
Notification notif = builder.build();
La couleur n'est respectée que sur Lollipop et n'affecte que l'arrière-plan de la petite icône . Si une grande icône est affichée, son contenu relève de votre entière responsabilité.
si vous avez défini color dans colors.xml, dans votre NotificationBuilder, ajoutez de la valeur
.setColor(getResources().getColor(R.color.<YOUR_COLOR>))
Ceci devrait régler votre problème. Cela n'affecte que l'arrière-plan de l'icône.
getColor(int)
est déconseillé sur Resources
Nous devrions maintenant utiliser l'une de ces alternatives:
Resources
' getColor (int, Theme)ContextCompat
' getColor (contexte de contexte, id int)