Por qué se establecen iconos con notificación.Constructor.setSmallIcon en Android Lollipop mostrar como un cuadrado blanco?


Tengo este código:

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

Y funciona bien en Android 4.4.

Sin embargo, en Android 5.0 el icono que se muestra en la barra de estado es un cuadrado blanco. El icono que aparece en el nuevo "cuerpo de notificación", que aparece cuando el dispositivo está bloqueado, es correcto.

En http://developer.android.com/reference/android/app/Notification.Builder.html , no veo nada nuevo sobre los iconos de notificación en el nivel de API 21

7 answers

Mira la documentación: http://developer.android.com/design/style/iconography.html

Hay palabras: "Los iconos de notificación deben ser completamente blancos. Además, el sistema puede reducir la escala y / o oscurecer los iconos."

 29
Author: porlicus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-04 06:07:48

He resuelto cambiar el tamaño del icono a 16x16 px y usar solo el color blanco

 26
Author: Borja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-01 11:54:32

Duplicado: El icono de la barra de notificaciones se vuelve blanco en Android 5 Lollipop

En un resumen:

Android 5 actualización: https://developer.android.com/about/versions/android-5.0-changes.html Notificaciones - > Estilo de diseño de materiales

Actualice o elimine activos que impliquen color. El sistema ignora todo canales no alfa en los iconos de acción y en el icono de notificación principal. Debe asumir que estos iconos serán solo alfa. Sistema dibuja iconos de notificación en blanco e iconos de acción en gris oscuro.

Es posible establecer el color de fondo del icono pequeño usando (el valor predeterminado es gris) :

Notification.Builder#setColor(int)
 4
Author: Tobliug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:08

Como se indica en Android 5.0 Cambios de comportamiento del sitio de Desarrolladores de Android en Notificaciones:

Las notificaciones se dibujan con texto oscuro sobre fondos blancos (o muy claros) para que coincidan con los nuevos widgets de material design. Asegúrese de que todas sus notificaciones se ven bien con el nuevo esquema de color. Si tus notificaciones se ven mal, arréglalas:

Use setColor() para establecer un color de acento en un círculo detrás de la imagen del icono. Actualice o elimine activos que impliquen color. El sistema ignora todos los canales no alfa en los iconos de acción y en el icono de notificación principal. Debe asumir que estos iconos serán solo alfa. El sistema dibuja iconos de notificación en blanco e iconos de acción en gris oscuro.

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

 3
Author: CoDeSigns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-19 20:23:16

En Android 5.0 el icono que se muestra en la barra de estado es un cuadrado blanco debido a 5.0 Lollipop "Los iconos de notificación deben ser completamente blancos".

Puedes encontrar fácilmente este tipo de iconos en el icono de Material. Visita: https://material.io/icons/

Google también sugiere que utilicemos un color personalizado que se mostrará detrás del icono de notificación blanco utilizando el método setColor().

Para más información visita: https://developer.android.com/about/versions/android-5.0-changes.html

 0
Author: Aashish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-22 15:47:24

Añade esto en tu manifiesto -

 <meta-data android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_notification" />
 0
Author: Anirban,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-18 10:00:03

Elimina android:targetSdkVersion="21" del manifiesto.XML. funcionará!

 -4
Author: 范文锋,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-11 09:32:29