Android 在棒棒糖和安卓M中,如何显示适当的通知小图标是无法显示的

Android 在棒棒糖和安卓M中,如何显示适当的通知小图标是无法显示的,android,android-5.0-lollipop,android-notifications,Android,Android 5.0 Lollipop,Android Notifications,我正在创建一个应用程序,我能够正确地显示通知,但是小图标没有显示出来,正如我在drawable文件夹中提到的,图标被白色遮住了。有人能帮我吗?我怎样才能使图标正确显示 以下是我的通知代码: nb = new NotificationCompat.Builder(context) .setContentTitle(contentTitle) .setContentText(contentText) .setSmallIcon(icon)

我正在创建一个应用程序,我能够正确地显示通知,但是小图标没有显示出来,正如我在drawable文件夹中提到的,图标被白色遮住了。有人能帮我吗?我怎样才能使图标正确显示

以下是我的通知代码:

nb = new NotificationCompat.Builder(context)
        .setContentTitle(contentTitle)
        .setContentText(contentText)
        .setSmallIcon(icon)
        .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.micon_notification))
        .setWhen(when)
        .setContentIntent(contentIntent)
        .setAutoCancel(true)
        .setOnlyAlertOnce(true)
        .setTicker(tickerText)
        .setColor(Color.RED);
drawable中提到的图标如下所示:

[1]: http://i.stack.imgur.com/ggYCY.png

图像中出现的完全红色正在消失,图标显示为完全白色。欢迎所有建议。

这是Android用来显示通知图标的代码:

if (entry.targetSdk >= Build.VERSION_CODES.LOLLIPOP) {
    entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white));
} else {
    entry.icon.setColorFilter(null);
}
为此,你必须使图标一样的剪影,并使一些部分透明,无论你想添加你的颜色

您可以使用添加颜色

.setColor(your_color_resource_here)
注意:setColor仅在棒棒糖中可用,因此,您必须检查OSVersion

if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    Notification notification = new Notification.Builder(context)
    ...
} else {
    // Lollipop specific setColor method goes here.
    Notification notification = new Notification.Builder(context)
    ...
    notification.setColor(your_color)
    ...            
}
if(android.os.Build.VERSION.SDK\u INT
查看文档:

有几个词:

通知图标必须完全为白色。此外,系统可能会扩展 向下和/或使图标变暗。”


我希望有帮助

我使用了设置颜色,它将颜色添加到图标的背景中,而不是使用setcolor方法。在icon.setColorFilter中,什么是条目??是setcolor用于更改背景颜色。你必须为棒棒糖设计不同的图标,如上图所示。在预棒棒糖版本上,您可以使用现有图标。你也可以点击图标链接。这只是安卓的源代码,向你解释安卓本身将棒棒糖过滤器设置为白色,这就是为什么你现有的图标在棒棒糖圈中显示为白色的原因是链接:关于安卓棒棒糖通知更改