推送通知图标显示为灰色

时间:2018-08-13 07:47:34

标签: c# android firebase xamarin xamarin.android

在我的应用程序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图标位于以下文件夹中,并带有dimensoins

  1. drawable-idpi--36x36
  2. drawable-mdpi--48x48
  3. drawable-hdpi--72x72
  4. drawable-xhdpi--96x96

应用结合了最高8.1 API。 Minimun 5.0 API。

推送通知的屏幕截图

enter image description here

3 个答案:

答案 0 :(得分:2)

也许您的图标没有通过背景fcm推送显示?因此,您需要按照以下here所述将其放在清单中的application标签内:

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

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

答案 1 :(得分: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;
}

答案 2 :(得分:1)

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

enter image description here

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

  • mdpi(160 dpi)24 x 24像素
  • hdpi(240 dpi)36 x 36像素
  • xhdpi(320 dpi)48 x 48像素
  • xxhdpi(400 dpi)60 x 60像素