Ich habe diesen Code:
Notification notif;
// Build notification
Notification.Builder notifBuilder = new Notification.Builder(context);
notifBuilder.setContentIntent(pendingIntent);
notifBuilder.setContentTitle(title);
notifBuilder.setSmallIcon(icon_resId);
notifBuilder.setContentText(ne.getCaption());
notifBuilder.setDefaults(Notification.DEFAULT_ALL);
notifBuilder.setAutoCancel(autocancel);
notifBuilder.setWhen(System.currentTimeMillis());
notif = notifBuilder.build();
und funktioniert gut in Android 4.4.
In Android 5.0 ist das in der Statusleiste angezeigte Symbol jedoch ein weißes Quadrat. Das in der neuen "Benachrichtigungsnachricht" angezeigte Symbol, das angezeigt wird, wenn das Gerät gesperrt ist, ist korrekt.
In http://developer.Android.com/reference/Android/app/Notification.Builder.html werden keine neuen Informationen zu Benachrichtigungssymbolen in API Level 21 angezeigt
Ich habe beschlossen, die Symbolgröße auf 16 x 16 Pixel zu ändern und nur weiße Farbe zu verwenden
Schauen Sie sich die Dokumentation an: http://developer.Android.com/design/style/iconography.html
es gibt Wörter: "Benachrichtigungssymbole müssen vollständig weiß sein. Außerdem kann das System die Symbole verkleinern und/oder abdunkeln."
Duplizieren: Benachrichtigungssymbol wird in Android 5 Lollipop weiß
In Kürze:
Android 5-Update: https://developer.Android.com/about/versions/Android-5.0-changes.html Benachrichtigungen -> Material Design Style
Aktualisieren oder entfernen Sie Elemente, die Farbe enthalten. Das System ignoriert alle Nicht-Alpha-Kanäle in Aktionssymbolen und im Hauptbenachrichtigungssymbol. Sie sollten davon ausgehen, dass diese Symbole nur Alpha-Zeichen enthalten. Das System zeichnet Benachrichtigungssymbole in Weiß und Aktionssymbole in Dunkelgrau.
Es ist möglich, die Hintergrundfarbe des kleinen Symbols mit (Standard ist grau) festzulegen:
Notification.Builder#setColor(int)
Wie in Android 5.0 Verhaltensänderungen der Android= Entwicklerseite unter Benachrichtigungen angegeben:
Benachrichtigungen werden mit dunklem Text auf weißem (oder sehr hellem) Hintergrund gezeichnet, um den neuen Widgets für das Materialdesign zu entsprechen. Stellen Sie sicher, dass alle Ihre Benachrichtigungen mit dem neuen Farbschema richtig aussehen. Wenn Ihre Benachrichtigungen falsch aussehen, beheben Sie sie:
Verwenden Sie setColor (), um eine Akzentfarbe in einem Kreis hinter Ihrem Symbolbild festzulegen. Aktualisieren oder entfernen Sie Elemente, die Farbe enthalten. Das System ignoriert alle Nicht-Alpha-Kanäle in Aktionssymbolen und im Hauptbenachrichtigungssymbol. Sie sollten davon ausgehen, dass diese Symbole nur Alpha-Zeichen enthalten. Das System zeichnet Benachrichtigungssymbole in Weiß und Aktionssymbole in Dunkelgrau.
http://developer.Android.com/about/versions/Android-5.0-changes.html .
Fügen Sie dies in Ihr Manifest ein -
<meta-data Android:name="com.google.firebase.messaging.default_notification_icon"
Android:resource="@drawable/ic_notification" />
In Android 5.0 ist das in der Statusleiste angezeigte Symbol ein weißes Quadrat, da 5.0 Lollipop "Benachrichtigungssymbole müssen vollständig weiß sein".
Sie können diese Art von Symbolen leicht auf dem Symbol Material finden. Besuchen Sie: https://material.io/icons/
Google schlägt außerdem vor, eine benutzerdefinierte Farbe zu verwenden, die unter Verwendung der setColor()
-Methode hinter dem weißen Benachrichtigungssymbol angezeigt wird.
Weitere Informationen finden Sie unter: https://developer.Android.com/about/versions/Android-5.0-changes.html
Wenn Sie sich das noch ansehen, können Sie Ihr Symbol am einfachsten korrekt darstellen, indem Sie es mit dem Android Icon Studio hier rendern:
https://romannurik.github.io/AndroidAssetStudio/icons-notification.html
Entpacken Sie die Dateien von der heruntergeladenen Zip-Datei in Ihren Projekt-/Hauptordner, damit sie in den entsprechenden Drawable-xxxx-Ordnern abgelegt werden können.
Um die Farbe in der Benachrichtigung zu ändern, gehen Sie wie folgt vor:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification_appicon) // <-- Icon from Android Icon Studio
.setColor(context.getColor(R.color.holo_blue)) // <-- Set your preferred icon colour to appear in the notification dropdown list
.setContentTitle("Title")
.setContentText("Content")
.setAutoCancel(true)
.setCategory(NotificationCompat.CATEGORY_EVENT)
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);