wake-up-neo.com

Warum werden mit Notification.Builder.setSmallIcon in Android Lollipop) festgelegte Symbole als weißes Quadrat angezeigt?

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

61
Borja

Ich habe beschlossen, die Symbolgröße auf 16 x 16 Pixel zu ändern und nur weiße Farbe zu verwenden

29
Borja

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."

31
porlicus

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)
4
Tobliug

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 .

4
CoDeSigns

Fügen Sie dies in Ihr Manifest ein -

 <meta-data Android:name="com.google.firebase.messaging.default_notification_icon"
    Android:resource="@drawable/ic_notification" />
2
Anirban

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

0
Aashish

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);
0
James Semaj