it-swarm.com.ru

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

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

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

See picture

77
Zsolt Boldizsár

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)

153
Eugen Pechanec

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

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

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

9
satyapol

getColor(int) устарела для Resources

Теперь мы должны использовать одну из этих альтернатив:

2
Luís Ramalho