Почему мой smallIcon для уведомлений всегда серым цветом?
Я попытался сделать маленький значок точно 16x16, серый масштаб, ничего, кроме серого и белого (серый цветhex
value 616161), чтобы создать силуэт моего значка приложения.
но независимо от того, что он просто отображается как белый/серый квадрат в уведомлениях. Что я делаю не так?
(мой мин api
равно 21, если предположить, что это актуально)
3 ответов
соблюдать этой ссылке
сначала давайте разберемся в документации Android, который выглядит следующим образом
"обновление или удаление активов, которые включают цвет. Система игнорирует все не альфа-каналы в значках действий и в главном значке уведомлений. Вы должны предположить, что эти значки будут Альфа-только. Система рисует значки уведомлений в белом и значки действий в темно-сером цвете."
теперь это легко пропустить и я видел много приложений, которые живут в App Store с тысячами пользователей, которые не следуют указанным рекомендациям.
поэтому позвольте мне подробно объяснить, как вы можете конвертировать значок уведомления в Android дружественный один с помощью нескольких щелчков мыши.
в вашем любимом редакторе изображений откройте файл значка. Конвертировать все части изображения, которые вы не хотите показывать прозрачные пиксели. Все цвета и непрозрачные пиксели отображаются белым цветом. Давайте пройдем через образец.
вы можете спросить дизайнера или использовать это инструмент создать значок
для уведомления вы должны использовать различные значки для разных версий android:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
показать значок уведомления на основе версии
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}
наряду с новыми функциями и возможностями, Android 5.0 включает в себя различные системные изменения и изменения поведения API. Польша. пройдите через уведомления изменения поведения.
уведомления рисуются с темным текстом поверх белого (или очень светлого) фон, чтобы соответствовать новым виджетам material design. Убедитесь, что все ваши уведомления выглядят правильно с новой цветовой схемой. Если ваш уведомления выглядят неправильно, исправить их:
- использовать
setColor()
чтобы установить цвет акцента в круге за изображением значка.- обновление или удаление активов, которые включают цвет. Система игнорирует все не альфа-каналы в значках действий и в главном значке уведомлений. Вы должны предположить, что эти значки будут Альфа-только. Система рисует значки уведомлений в белом и значки действий в темно-сером цвете.
так, в основном вы должны использовать силуэт значки как значок уведомления для уровня API 21+