Как поддерживать несколько цветов (более двух цветов) для значка уведомлений Android?

  1. Я работаю над приложением Android (уровень API> 23). И я должен поддерживать Уведомление.
  2. И мой значок уведомления поддерживает более двух цветов.
  3. Если я использую этот значок, он отображается серым цветом в панели уведомлений.
  4. Итак, я создал прозрачный фон и полностью белый значок и установил цвет динамически.

  5. Но я могу установить только один цвет (setColor ()).

Итак, мой вопрос: -

Как поддерживать несколько цветов (более двух цветов или цветовых градиентов) для значка уведомлений Android? Примечание. - Я использовал ссылку на Android Push Уведомления: значок не отображается в уведомлении, вместо него отображается белый квадрат

Заранее благодарим за поддержку.




Ответы (2)


Если ваше приложение нацелено на SDK 21+, система всегда будет окрашивать ваш значок уведомления

  • белый, когда отображается в темной строке состояния
  • темно-серый, когда он отображается в светлой строке состояния (API 23+)
  • темно-серый, когда он свернут, в нижней части тени уведомления
  • цвет, который вы устанавливаете, когда он является частью уведомления в тени уведомления (API 24+, до этого у вас был белый значок над цветным кружком в качестве большого значка уведомления по умолчанию)

У вас нет никакого контроля над цветом, кроме описанного выше.

Но вы можете работать с альфа-каналом. Вы можете добиться разной степени белого / темно-серого / цвета в вашем значке.

Нет, другого выхода нет. Передайте это своему дизайнеру и руководству.

Изменения в поведении Android 5.0

Уведомления

Стиль материального дизайна

  • Обновите или удалите ресурсы, содержащие цвет. Система игнорирует все неальфа-каналы в значках действий и в значке основного уведомления. Вы должны предполагать, что эти значки будут только альфа-версиями. Система отображает значки уведомлений белым цветом, а значки действий - темно-серым.

Источник: https://developer.android.com/about/versions/android-5.0-changes.html#NotificationsMaterialDesignStyle

person Eugen Pechanec    schedule 12.10.2019
comment
@AlokMishra Вы упомянули другой вопрос, на этот вопрос есть принятый ответ, и в этом ответе есть ссылка на официальную документацию Google. То, что мне нужно снова ссылаться на одно и то же, не делает его более действительным. Правила установлены, это действительно официально, разберитесь. Вот ссылка для удобства: developer.android.com/about / versions / - person Eugen Pechanec; 13.10.2019
comment
Спасибо за ответ :) наконец-то разработчики и команда разработчиков согласны с вашим решением. - person Alok Mishra; 28.10.2019
comment
@EugenPechanec, но некоторые приложения могут устанавливать значок уведомления другим цветом. Например, домино ... Если это невозможно, то как они могут этого добиться? Потому что я также хочу установить значок уведомления с разными цветами - person Kousalya; 19.06.2020
comment
Отправьте ссылку, там миллион домино. Только приложения, ориентированные на SDK не более 19, будут иметь цветные значки уведомлений. Эти приложения также не будут допущены в магазин Play, для которого требуется целевой SDK где-то около 28. - person Eugen Pechanec; 19.06.2020
comment
@EugenPechanec stackoverflow.com/q/62422988/11630822, это мой вопрос по стеку .. здесь я добавил снимок экрана с домино в моем телефоне Android (версия пирога) - person Kousalya; 19.06.2020

Уведомления

Убедитесь, что в ваших уведомлениях учтены эти изменения Android 5.0. Чтобы узнать больше о создании уведомлений для Android 5.0 и более поздних версий, см. Руководство по созданию уведомлений.

Стиль материального дизайна

Уведомления отображаются темным текстом на белом (или очень светлом) фоне, чтобы соответствовать новым виджетам материального дизайна. Убедитесь, что все ваши уведомления выглядят правильно с новой цветовой схемой. Если ваши уведомления выглядят неправильно, исправьте их:

  • Используйте setColor (), чтобы установить цвет акцента в круге за изображением значка.
  • Обновите или удалите ресурсы, содержащие цвет. Система игнорирует все неальфа-каналы в значках действий и в значке основного уведомления. Вы должны предполагать, что эти значки будут только альфа-версиями. Система рисует значки уведомлений белым цветом, а значки действий - темно-серым.

из: https://developer.android.com/about/versions/android-5.0-changes.html#NotificationsMaterialDesignStyle

person SebastienRieu    schedule 10.10.2019
comment
Это предварительное требование к уведомлению, но как установить несколько цветов, и это то, что спросил OP? - person M D; 10.10.2019
comment
когда вы создаете свое уведомление, Notification.Builder содержит метод для установки значка - person SebastienRieu; 10.10.2019
comment
мой вопрос в том, как установить несколько цветов в значке уведомления, а не о базовой настройке для уведомления или setIcon () - person Alok Mishra; 10.10.2019
comment
если у вас есть несколько значков с разными цветами, вы можете легко создать метод, чтобы вернуть хороший вариант значка для типа уведомления, когда установите значок на уведомление? builder.setSmallIcon (getGoodColorIcon ()) - person SebastienRieu; 10.10.2019
comment
Не могли бы вы создать образец с более чем 2 цветами в значке уведомления, который будет работать в Android-O? - person Alok Mishra; 28.10.2019