Ich habe das Notifications design pattern durchgesehen und nichts gefunden, was über den Hintergrund der Benachrichtigungssymbole spricht. Wie Sie wahrscheinlich bemerkt haben, gibt es für benutzerdefinierte Benachrichtigungen nur einen hellgrauen Hintergrund. Apps wie Hangouts oder einfach die USB-Debugging-Benachrichtigung haben eine benutzerdefinierte Farbe für den Hintergrund des Benachrichtigungssymbols.
Gibt es eine Möglichkeit, dieses Grau in etwas anderes zu verwandeln? (die Farbe dieses bestimmten Kreises programmgesteuert)
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();
Die Farbe wird nur bei Lollipop beachtet und wirkt sich nur auf den Hintergrund des kleinen Symbols aus. Wenn ein großes Symbol angezeigt wird, liegt der Inhalt ausschließlich in Ihrer Verantwortung.
wenn Sie color in colors.xml definiert haben, geben Sie in Ihrem NotificationBuilder den Wert "" ein
.setColor(getResources().getColor(R.color.<YOUR_COLOR>))
Das sollte dein Problem lösen. Dies wirkt sich nur auf den Hintergrund des Symbols aus.
getColor(int)
wurde auf Resources
verworfen
Wir sollten jetzt eine dieser Alternativen verwenden:
Resources
's getColor (int, Theme)ContextCompat
's getColor (Kontextkontext, int id)