Изменение фона значка уведомлений на Lollipop

Я просматривал шаблон дизайна уведомлений и не нашел ничего, что говорит о значке значка уведомлений. Как вы, вероятно, заметили, есть только светло-серый фон для пользовательских уведомлений. Но такие приложения, как Hangouts или просто уведомление об отладке USB, имеют пользовательский цвет для фона значков уведомлений.

Есть ли возможность изменить этот серый цвет на что-то еще? (программный цвет с определенным цветом)

See picture

Ответ 1

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)

Ответ 2

если вы определили цвет в colors.xml, то в NotificationBuilder добавьте значение как

.setColor(getResources().getColor(R.color.<YOUR_COLOR>))

Это должно решить вашу проблему. Это влияет только на фон значка.