正如标题所述,当我启动时,我通知状态栏上的小图标不会更改为白色,几乎是不可见的:
Notification n = new Notification.Builder(this)
.setContentTitle("title")
.setContentText("lorem ipsum dolor sit amet")
.setSmallIcon((R.drawable.logo_ntf))
.setLargeIcon(icon)
.setAutoCancel(true)
//.addAction(R.drawable.transparent, null, null)
.build();
答案 0 :(得分:0)
确保可绘制文件的透明性之后。...
尝试将以下内容添加到Notification.Builder管道:
.setColor(color);
颜色应该是资源的int值,指的是颜色,就像这样:
int color = getResources().getColor(R.color.notification_color);
不推荐使用的方式:
int color = ContextCompat.getColor(context, R.color.notification_color);
答案 1 :(得分:0)
对于Android 5+,您必须为通知小图标创建一个透明图标。
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notification.setSmallIcon(R.drawable.icon_transperent);
notification.setColor(getResources().getColor(R.color.notification_color));
} else {
notification.setSmallIcon(R.drawable.icon);
}
检查sub-document了解更多
答案 2 :(得分:0)
原因:对于5.0棒棒糖,“通知图标必须完全为白色”。
如果我们通过将目标SDK设置为20来解决白色图标问题,则我们的应用将不会以Android Lollipop为目标,这意味着我们无法使用Lollipop特有的功能。
对于Lollipop OS版本及更高版本,Notification Builder的实施如下:
Notification notification = new NotificationCompat.Builder(this);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notification.setSmallIcon(R.drawable.icon_transperent);
notification.setColor(getResources().getColor(R.color.notification_color));
} else {
notification.setSmallIcon(R.drawable.icon);
}