更改棒棒糖的通知图标背景

我浏览了 通知设计模式,没有发现任何有关通知图标背景的内容。您可能已经注意到,自定义通知只有浅灰色的背景。但是像 Hangouts 这样的应用程序,或者仅仅是 USB 调试通知有一个自定义颜色的通知图标背景。

有没有可能把那个灰色变成其他颜色? (那个特定圆圈的颜色是程序化的)

See picture

62625 次浏览

1)获取颜色

int color = 0xff123456;
int color = getResources().getColor(R.color.my_notif_color);
int color = ContextCompat.getColor(context, R.color.my_notif_color);

2)设置通知的颜色

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
...
builder.setColor(color);
Notification notif = builder.build();

这种颜色只在棒棒糖上受到尊重,并且只影响 小图标的背景。如果一个大图标显示其内容完全是你的责任。

资料来源: NotificationCompat.Builder # setColor (int)

如果您已经在 Colors.xml 中定义了颜色,那么在 NotificationBuilder 中将值添加为

.setColor(getResources().getColor(R.color.<YOUR_COLOR>))

这应该能解决你的问题。 它只影响图标的背景。

Resources上不推荐使用 getColor(int)

我们现在应该使用其中一种选择: