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

根据上下文更改Android小通知图标的颜色,android,notifications,Android,Notifications,为了找到这个问题的答案,我已经搜索了好几天了,但我一辈子都无法找到答案:-/ 在我的三星S6和Android O上,像Gmail这样的应用程序在状态栏上有白色的通知,但当你把通知拉下来单独检查时,会有红色/蓝色/绿色/任何通知。例如,请参阅附件中的照片-显示通知时,Gmail为红色,通知栏中为白色 要做到这一点,一个人必须做什么样的Android编程魔法?更具体地说,在Notification.Builder中,我需要设置哪些值才能使其以这种方式显示?有两个不同的图标吗?是否有一个可绘制的多层?

为了找到这个问题的答案,我已经搜索了好几天了,但我一辈子都无法找到答案:-/

在我的三星S6和Android O上,像Gmail这样的应用程序在状态栏上有白色的通知,但当你把通知拉下来单独检查时,会有红色/蓝色/绿色/任何通知。例如,请参阅附件中的照片-显示通知时,Gmail为红色,通知栏中为白色

要做到这一点,一个人必须做什么样的Android编程魔法?更具体地说,在Notification.Builder中,我需要设置哪些值才能使其以这种方式显示?有两个不同的图标吗?是否有一个可绘制的多层?如果是,如何选择在哪里显示哪些层?谢谢


首先,我们应该使用
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_图标
)应该是白色的,并且应该有一点不透明(应该是透明的)。在此之后,您的顶部通知图标将为白色,当您绘制通知时,它将变为
R.color。您的_color

从我可以得出的结论是,对于gmail,不仅颜色是更改的属性,它可能是两个不同定义的功能,一个用于分组通知,另一个用于单个邮件。请参见