我正在设置一个图标,使用白色透明背景的.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);
如何在通知抽屉中设置图标颜色,或使用不同的图标?
目标是在通知区域中以白色显示图标,在通知抽屉中以蓝色显示。
答案 0 :(得分:1)
图标颜色由Android 7.0(API 24)自动设置。
对于要由Android着色的图标,您必须使用不同密度的特定资源,并将它们添加到相应的目录中。
在我的应用中,我添加了图标
/资源/抽拉-HDPI
/资源/抽拉-xhdpi
/资源/抽拉-xxhdpi
如果您(就我而言)拥有图标的图片,则可以使用此工具创建新资源:https://romannurik.github.io/AndroidAssetStudio/icons-notification.html
源代码不会改变,但在设置不同密度的图标时,图标在抽屉中变为彩色,在通知区域中变为白色。
以前我只是在Resources / drawable文件夹中使用默认的.png图标。 这会显示图标,但它始终显示为相同的颜色。