推送通知图标显示灰色

问题描述 投票:1回答:3

在我的应用程序Firebase推送通知中没有正确显示图标,它在通知中显示总灰色图标。我用于实现通知的代码

var notificationBuilder = new Notification.Builder(this)
.SetSmallIcon(Resource.Drawable.ic_launcherLmg)
.SetContentTitle(user.Organization)
.SetSubText(user.ModuleName)
.SetContentText(user.BodyText)
.SetAutoCancel(true)
.SetContentIntent(pendingIntent)
.Build();

图标我在SetSmallIcon(Resource.Drawable.ic_launcherLmg)线设置。 ic_launcherLmg图标在以下文件夹中提供给定尺寸

  1. 提拉 - IDPI - 36X36
  2. 提拉 - MDPI - 48×48
  3. 提拉 - 华电国际 - 最高72x72
  4. 提拉 - xhdpi - 96×96

应用程序定位最高8.1 API。最低5.0 API。

推送通知的屏幕截图

enter image description here

c# android firebase xamarin xamarin.android
3个回答
2
投票

也许你的图标没有显示背景fcm推?因此,您需要将此内部应用程序标记放在清单中,如此处所述here

<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_launcherLmg" />

Android会为未明确设置通知图标的所有通知消息显示此自定义默认图标。


1
投票

您可以使用

使用mipmap图标而不是可绘制图标,并将其放在xxxhdpi-mipmap文件夹中。如果背景为白色,图标将自动调整其颜色

要么

使用通知图标作为Android版本

.SetSmallIcon(getNotificationIcon())

并且功能是或根据需要更改它

private int getNotificationIcon() {
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
    return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}

1
投票

最后,通过更改图标的颜色解决了这个问题。无论我们想要显示的通知图标的内容应该是Gray颜色和图标的背景应该是White。示例图片

enter image description here

我没有注意到尺寸问题,但是首选尺寸应该是

  • mdpi(160 dpi)24 x 24 px
  • hdpi(240 dpi)36 x 36像素
  • xhdpi(320 dpi)48 x 48 px
  • xxhdpi(400 dpi)60 x 60 px
© www.soinside.com 2019 - 2024. All rights reserved.