Подтвердить что ты не робот

Почему значки, установленные с Notification.Builder.setSmallIcon в Android Lollipop, отображаются как белый квадрат?

У меня есть этот код:

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

и отлично работает в Android 4.4.

Однако в Android 5.0 значок, показанный в строке состояния, представляет собой белый квадрат. Значок, отображаемый в новом "корпусе уведомления", который появляется, когда устройство заблокировано, является правильным.

В http://developer.android.com/reference/android/app/Notification.Builder.html я не вижу ничего нового о знаках уведомлений на уровне API уровня 21

4b9b3361

Ответ 1

Я решил изменить размер значка на 16x16 пикселей и использовать только белый цвет

Ответ 2

Посмотрите документацию: http://developer.android.com/design/style/iconography.html

есть слова: "Значки уведомлений должны быть полностью белыми. Кроме того, система может уменьшать и/или затемнить значки".

Ответ 3

Дубликат: Значок панели уведомлений становится белым в Android 5 Lollipop

Вкратце:

Обновление Android 5: https://developer.android.com/about/versions/android-5.0-changes.html Уведомления → Стиль дизайна материалов

Обновите или удалите активы, которые включают цвет. Система игнорирует все не-альфа-каналы в значках действий и в главном значке уведомления. Вы должны предположить, что эти значки будут только альфа-. Система рисует значки уведомлений в белом и значки действий в темно-сером цвете.

Можно установить цвет фона маленького значка (по умолчанию серый):

Notification.Builder#setColor(int)

Ответ 4

Как отмечено в Android 5.0 Behavior Changes на сайте разработчиков Android в разделе Уведомления:

Уведомления рисуются темным текстом на белом (или очень легком) фоном, чтобы соответствовать новым виджетам дизайна материалов. Убедитесь, что все ваши уведомления выглядят правильно с новой цветовой схемой. Если ваши уведомления выглядят неправильно, исправьте их:

Используйте setColor(), чтобы установить цвет акцента в круге за вашим изображением значка. Обновите или удалите активы, которые включают цвет. Система игнорирует все не-альфа-каналы в значках действий и в главном значке уведомления. Вы должны предположить, что эти значки будут только альфа-. Система рисует значки уведомлений в белом цвете и значках действий в темно-сером цвете.

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

Ответ 5

удалите android: targetSdkVersion = "21" из manifest.xml. он будет работать!