根据上下文更改Android小通知图标颜色

16

我在 Stack Overflow 搜索了几天,但就是找不到这个问题的答案 :-/

在我的 Android O Samsung S6 上,像 Gmail 这样的应用程序在状态栏上有白色通知,但当您下拉以单独查看它们时,会显示红色/蓝色/绿色/其他颜色的通知。例如,参见附图 - Gmail 在显示通知时为红色,在通知栏中为白色。

要实现这一点,需要进行哪种类型的编程 Android 魔法呢?更具体地说,在 Notification.Builder 中,我需要设置哪些值才能使其以这种方式显示?是否有两个不同的图标?是否有一个带有多个图层的可绘制对象?如果是这样,那么如何选择在哪里显示哪些图层?谢谢!

美丽的红色 Gmail 通知 明亮的白色 Gmail 通知


从我的结论来看,在Gmail的情况下,不仅颜色是被更改的属性,它可能是两个明确定义的函数,一个用于分组通知,另一个用于单个邮件的着色。 - Prakhar Kulshreshtha
请参见以下链接以了解有关Android通知图标颜色的信息:https://dev59.com/DVcO5IYBdhLWcg3wZQzX - ashkhn
1个回答

18

首先,我们应该使用 NotificationCompat.Builder

其次,以下是获取该行为的代码

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, "NOTIFICATION_CHANNEL_NAME")
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle(title)
            .setContentText(message)
            .setColor(ContextCompat.getColor(context, R.color.your_color))
            .setContentIntent(pendingIntent);

还有一件事情,您正在使用的图标 (R.drawable.notification_icon) 应该是白色的,同时需要有一点透明度。这样,您的顶部通知图标将会是白色的,并且当您绘制通知时,它将变成 R.color.your_color


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接