значок строки уведомлений не меняется на белый - PullRequest
0 голосов
/ 25 марта 2019

Как гласит заголовок при запуске, я уведомляю, что маленький значок в строке состояния не меняет цвет на белый и почти невидим:

enter image description here

enter image description here

Notification n  = new Notification.Builder(this)
        .setContentTitle("title")
        .setContentText("lorem ipsum dolor sit amet")
        .setSmallIcon((R.drawable.logo_ntf))
        .setLargeIcon(icon)
        .setAutoCancel(true)
        //.addAction(R.drawable.transparent, null, null)
        .build();

Ответы [ 3 ]

0 голосов
/ 25 марта 2019

Для Android 5+ необходимо создать прозрачную иконку для небольшого значка уведомления.

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    notification.setSmallIcon(R.drawable.icon_transperent);
    notification.setColor(getResources().getColor(R.color.notification_color));
} else { 
    notification.setSmallIcon(R.drawable.icon);
}

Отметьте , это , чтобы узнать больше

0 голосов
/ 25 марта 2019

Причина: для леденца 5.0 «Значки уведомлений должны быть полностью белыми».

Если мы решим проблему с белыми значками, установив целевой SDK равным 20, наше приложение не будет нацеленоAndroid Lollipop, что означает, что мы не можем использовать функции, специфичные для Lollipop.

Реализация Notification Builder для версий ОС Lollipop ниже и выше:

Notification notification = new NotificationCompat.Builder(this);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    notification.setSmallIcon(R.drawable.icon_transperent);
    notification.setColor(getResources().getColor(R.color.notification_color));
} else { 
    notification.setSmallIcon(R.drawable.icon);
} 

ссылкассылка , а также ознакомление с документацией 5.0 Изменения поведения

0 голосов
/ 25 марта 2019

После обеспечения прозрачности вашего нарисованного файла ....

Попробуйте добавить следующее в конвейер Notification.Builder:

.setColor(color);

color должно бытьзначение ресурса int, ссылающееся на цвет, например:

int color = getResources().getColor(R.color.notification_color);

Не рекомендуется использовать:

int color = ContextCompat.getColor(context, R.color.notification_color);

Источник: Документация setColor

...