【问题标题】:Changing notification icon background on Lollipop更改 Lollipop 上的通知图标背景
【发布时间】:2015-02-05 05:38:58
【问题描述】:

我正在浏览Notifications design pattern,并没有找到任何关于通知图标背景的内容。您可能已经注意到,自定义通知只有浅灰色背景。但是像环聊这样的应用程序,或者只是 USB 调试通知的通知图标背景具有自定义颜色。

有没有可能把那个灰色变成别的东西? (以编程方式为特定圆圈的颜色)

【问题讨论】:

  • 可能有绿色背景的特殊图标?
  • 不确定它是否对任何人仍然重要,但从 Android 6.1 开始,有一个新标志“NotificationCompat.Builder.setColorized(boolean colorize)”允许更改通知的“灰色背景”。

标签: android android-notifications android-5.0-lollipop


【解决方案1】:

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();

颜色仅在 Lollipop 上受到尊重,并且仅影响 小图标的背景。如果显示大图标,则其内容完全由您负责。

来源:NotificationCompat.Builder#setColor(int)

【讨论】:

  • 据此:stackoverflow.com/a/27023679/327011 setColor 只会改变小图标的颜色。当心。
  • 1) 这仅适用于LOLLIPOP。 2) 这不影响您在setLargeBitmap 中提供的图片。它只为小图标的背景着色。
  • @AlexVPerl 您可以在此评论下方尝试我的解决方案
  • 如果您不设置大图标,"setColor" 是正确答案。您将以 my_notif_color 作为背景显示小图标,没有添加小徽章。在 android 6.0 上测试
  • 我有一个问题,我将图标设置为绿色,但是当通知出现时它会自动变为白色。
【解决方案2】:

如果您在 colors.xml 中定义了颜色,那么在 NotificationBuilder 中添加值

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

这应该可以解决您的问题。 它只影响图标的背景。

【讨论】:

  • 我有一个问题,我将图标设置为绿色,但是当通知出现时它会自动变为白色。
【解决方案3】:

getColor(int) 已在 Resources 上弃用

我们现在应该使用以下替代方法之一:

【讨论】:

  • 我有一个问题,我将图标设置为绿色,但是当通知出现时它会自动变为白色..
  • 如果您使用纯色,旧方法也可以正常工作。
  • 仍然是白色方形图标,仅在 6.0 中出现,但在 5.0 之前 appicon 很好
猜你喜欢
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 2015-10-24
  • 2013-01-28
相关资源
最近更新 更多