55

Ho questo codice:Perché le icone impostate con Notification.Builder.setSmallIcon in Android Lollipop vengono visualizzate come un quadrato bianco?

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(); 

e funziona bene in Android 4.4.

Tuttavia, in Android 5.0 l'icona mostrata nella barra di stato è un quadrato bianco. L'icona mostrata nel nuovo "corpo di notifica", che appare quando il dispositivo è bloccato, è corretta.

In http://developer.android.com/reference/android/app/Notification.Builder.html, non vedo nulla di nuovo sulle icone di notifica a livello di API 21

+0

Ciao, hai trovato una soluzione? Ho lo stesso problema qui. Ho provato con un'altra icona, ma lo stesso problema si verifica ancora. – Seb83

+2

Ho risolto la modifica della dimensione dell'icona a 16x16 px e utilizzando solo il colore bianco – Borja

+1

Possibile duplicato di [L'icona della barra di notifica diventa bianca in Android 5 Lollipop] (http://stackoverflow.com/questions/28387602/notification-bar-icon- trasforma-bianco-in-android-5-lecca-lecca) –

risposta

25

ho risolto cambiando la dimensione delle icone a 16x16 px e utilizzando solo il colore bianco

+3

Non hai notato che tutte le notifiche sono mascherate di bianco in lecca-lecca? Per usare buone icone nel lecca-lecca dovresti usare un'icona con una forma evidente. Tutti i colori saranno tradotti in bianco, quindi la trasparenza è un must. –

+0

La dimensione totale delle risorse dell'immagine deve essere 72 * 72 all'interno di un quadrato ottico di 66 * 66 per poter essere visualizzata correttamente. Si prega di fare riferimento a http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/ – SavageKing

+0

@SavageKing che è una grande risorsa ma non è stata aggiornata per Lollipop. In particolare, le dimensioni delle icone di notifica non vengono più ridimensionate correttamente rispetto alle app Google. Per quanto ne sappia, stanno usando un'icona di 80x80 all'interno di un'immagine di 96x96 per xxxhdpi. – String

29

Guardate la documentazione: http://developer.android.com/design/style/iconography.html

ci sono parole: "Le icone di notifica devono essere completamente bianche.Inoltre, il sistema può ridimensionare e/o scurire le icone."

+4

La documentazione è stata modificata: https://www.google.com/design/spec/patterns/notifications.html "Essere bianco opaco, utilizzando solo il canale alfa." – Ben

+3

Né il link di porlicus o Ben attualmente dice nulla sulle specifiche delle icone piccole. – JoeMjr2

-4

rimuovere android: targetSdkVersion = "21" da manifest.xml. funzionerà!

+72

Questa non è una soluzione, è un cattivo modo di andare contro il sistema. – SagiLow

+0

esistono soluzioni con Android: targetSdkVersion = "21" versione nel file manifest? – John

+2

@john, no, ma l'impostazione di android: targetSdkVersion = "19" funziona alla grande pure. Per tutti gli altri: non capisco bene l'antipatia di questa risposta. Il problema è fondamentalmente "Lollipop non vuole fare le cose nel modo in cui voglio farle". Quindi logicamente le tue scelte sono accettate come lecca-lecca o non mirate al lecca-lecca. – netsplit

3

Come osservato in Android 5.0 Modifiche al comportamento del sito Android Developers sotto Notifiche:

notifiche sono disegnati con testo scuro in cima sfondi bianchi (o molto leggeri) per abbinare i nuovi widget materiale di design. Assicurati che tutte le notifiche siano corrette con la nuova combinazione di colori. Se le tue notifiche sembrano errate, correggile:

Usa setColor() per impostare un colore di accento in un cerchio dietro l'immagine dell'icona. Aggiorna o rimuovi le risorse che coinvolgono il colore. Il sistema ignora tutti i canali non alfa nelle icone di azione e nell'icona di notifica principale. Dovresti presumere che queste icone saranno solo alfa. Il sistema disegna icone di notifica in bianco e icone di azione in grigio scuro.

http://developer.android.com/about/versions/android-5.0-changes.html.

4

Duplicate: Notification bar icon turns white in Android 5 Lollipop

in una breve:

Android 5 aggiornamento: https://developer.android.com/about/versions/android-5.0-changes.html Notifiche -> Materiale design in stile

Update o rimuovere le attività che coinvolgono il colore. Il sistema ignora tutti i canali non alpha nelle icone di azione e nell'icona di notifica principale. Dovresti dare per scontato che queste icone siano solo alfa. Il sistema disegna icone di notifica in bianco e icone di azione in grigio scuro.

E 'possibile impostare il colore di sfondo dell'icona piccola usando (di default è grigio):

Problemi correlati