Я просматривал шаблон проектирования уведомлений и не нашел ничего, что говорило бы о фоне значка уведомлений. Как вы, наверное, заметили, для пользовательских уведомлений есть только светло-серый фон. Но такие приложения, как Hangouts или просто уведомление об отладке по USB, имеют собственный цвет фона значка уведомления.
Есть ли возможность изменить этот серый цвет на что-нибудь другое? (программный цвет этого конкретного круга)
android
android-notifications
android-5.0-lollipop
Жолт Болдишар
источник
источник
Ответы:
1) Получить цвет
int color = 0xff123456; int color = getResources().getColor(R.color.my_notif_color); int color = ContextCompat.getColor(context, R.color.my_notif_color);
2) Установите цвет для уведомления
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); ... builder.setColor(color); Notification notif = builder.build();
Цвет соблюдается только на Lollipop и влияет только на фон маленькой иконки . Если отображается большой значок, ответственность за его содержание полностью лежит на вас.
Источник: NotificationCompat.Builder # setColor (int)
источник
LOLLIPOP
. 2) Это не влияет на изображение, предоставленное вами вsetLargeBitmap
. Он только окрашивает фон маленькой иконки.если вы определили цвет в colors.xml, тогда в вашем NotificationBuilder добавьте значение как
.setColor(getResources().getColor(R.color.<YOUR_COLOR>))
Это должно решить вашу проблему. Это влияет только на фон значка.
источник
getColor(int)
устарелResources
Теперь мы должны использовать одну из этих альтернатив:
Resources
«S GetColor (интермедиат, Theme)ContextCompat
«S GetColor (контекст Context, внутр идентификатор)источник