Ответ 1
Я решил изменить размер значка на 16x16 пикселей и использовать только белый цвет
У меня есть этот код:
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
Я решил изменить размер значка на 16x16 пикселей и использовать только белый цвет
Посмотрите документацию: http://developer.android.com/design/style/iconography.html
есть слова: "Значки уведомлений должны быть полностью белыми. Кроме того, система может уменьшать и/или затемнить значки".
Дубликат: Значок панели уведомлений становится белым в Android 5 Lollipop
Вкратце:
Обновление Android 5: https://developer.android.com/about/versions/android-5.0-changes.html Уведомления → Стиль дизайна материалов
Обновите или удалите активы, которые включают цвет. Система игнорирует все не-альфа-каналы в значках действий и в главном значке уведомления. Вы должны предположить, что эти значки будут только альфа-. Система рисует значки уведомлений в белом и значки действий в темно-сером цвете.
Можно установить цвет фона маленького значка (по умолчанию серый):
Notification.Builder#setColor(int)
Как отмечено в Android 5.0 Behavior Changes на сайте разработчиков Android в разделе Уведомления:
Уведомления рисуются темным текстом на белом (или очень легком) фоном, чтобы соответствовать новым виджетам дизайна материалов. Убедитесь, что все ваши уведомления выглядят правильно с новой цветовой схемой. Если ваши уведомления выглядят неправильно, исправьте их:
Используйте setColor(), чтобы установить цвет акцента в круге за вашим изображением значка. Обновите или удалите активы, которые включают цвет. Система игнорирует все не-альфа-каналы в значках действий и в главном значке уведомления. Вы должны предположить, что эти значки будут только альфа-. Система рисует значки уведомлений в белом цвете и значках действий в темно-сером цвете.
http://developer.android.com/about/versions/android-5.0-changes.html.
удалите android: targetSdkVersion = "21" из manifest.xml. он будет работать!