На Android 5 значок уведомлений о переадресации в строке состояния остается белым

Andorid 5 принимает иконку 96px по умолчанию для строки состояния, и пока она не станет белой + aplha changel, она не будет отображаться. Но значок 96px также используется в качестве основного значка приложения. Как я могу установить этот значок в строке состояния на пользовательский?

как это выглядит

1 ответ

Решение

В Android 5+ вам необходимо предоставить специальные значки уведомлений, которые будут белыми / серыми и прозрачными, чтобы соответствовать рекомендациям по дизайну Android. В настоящее время нет возможности включить эти значки через дескриптор приложения AIR. Вместо этого вы должны добавить их в качестве пользовательских ресурсов Android.

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

введите описание изображения здесь

Затем перейдите к Android Asset Studio Генератор значков уведомлений

https://romannurik.github.io/AndroidAssetStudio/icons-notification.html

и загрузите исходное изображение. Убедитесь, что вы изменили название значка. Запомните это имя, так как вы будете использовать это имя для ссылки на этот значок в уведомлениях. В приведенном ниже примере мы использовали your_icon_name,

Затем вы можете скачать zip-архив и распаковать содержимое, и у вас должна быть серия каталогов, содержащих все необходимые значки разных размеров.

Затем загрузите наш скрипт генератора ANR CustomResources из следующего репозитория:

https://github.com/distriqt/ANE-CustomResources

Следуйте инструкциям для настройки скрипта, а затем скопируйте содержимое ZIP-файла, который вы загрузили ранее, в res каталог в корне скрипта.

После запуска скрипта вы должны иметь ANE com.distriqt.CustomResources.ane что вы можете включить в свой проект.

Теперь вы можете использовать имя вашего значка для создания уведомлений:

Notifications.service.notify(
    new NotificationBuilder()
        .setIcon( "your_icon_name" )
        .setAlert( "Notification Alert" )
        .setTitle( "Notification Title" )
        .setBody( "The body of the notification" )
        .build()
);
Другие вопросы по тегам