如何在Android中为通知区域和通知抽屉使用不同的通知图标

时间:2017-06-28 18:43:57

标签: android xamarin colors notifications drawer

我正在设置一个图标,使用白色透明背景的.png。 在锁定屏幕和通知区域中显示时,它正常工作。

图标以黄色突出显示: enter image description here

现在在通知抽屉中,图标也显示为白色(是相同的图标)。 enter image description here

但我想使用另一个图标,在这种情况下卡车是蓝色的。 现在我使用Notification.Builder.SetColor()将颜色设置为蓝色,标题以该颜色显示。

您可以看到状态栏中的Gmail图标显示为白色,抽屉中显示为红色。

这是构建通知的实际代码。 代码适用于Xamarin.Droid

var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;

Notification.Builder builder = new Notification.Builder(this)
                .SetContentTitle(title)
                .SetContentText(desc)
                .SetSmallIcon(Routes.Droid.Resource.Drawable.truck)
                .SetAutoCancel(true);
builder.SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.truckColor));
builder.SetColor(Android.Graphics.Color.Rgb(33,150,243));

var notification = new Notification.BigTextStyle(builder).BigText(desc).Build();

notificationManager.Notify(-1, notification);

如何在通知抽屉中设置图标颜色,或使用不同的图标?

目标是在通知区域中以白色显示图标,在通知抽屉中以蓝色显示。

1 个答案:

答案 0 :(得分:1)

图标颜色由Android 7.0(API 24)自动设置。

对于要由Android着色的图标,您必须使用不同密度的特定资源,并将它们添加到相应的目录中。

在我的应用中,我添加了图标

/资源/抽拉-HDPI

/资源/抽拉-xhdpi

/资源/抽拉-xxhdpi

如果您(就我而言)拥有图标的图片,则可以使用此工具创建新资源:https://romannurik.github.io/AndroidAssetStudio/icons-notification.html

源代码不会改变,但在设置不同密度的图标时,图标在抽屉中变为彩色,在通知区域中变为白色。

以前我只是在Resources / drawable文件夹中使用默认的.png图标。 这会显示图标,但它始终显示为相同的颜色。