NotificationCompat.Builder setLargeIcon在通知中不显示图像

时间:2019-05-21 14:50:20

标签: android push-notification android-bitmap

我正在尝试在通知中显示小图标。尝试了几个扩展。 JPG,BMP,PNG,SVG。

活动正在运行时会显示小图标,但活动未运行时它不会在通知中显示小图标。

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_success);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setLargeIcon(bitmap)
                .setStyle(new NotificationCompat.BigPictureStyle()
                        .bigPicture(bitmap))
                .setSmallIcon(R.mipmap.ic_launcher_round)
                .setContentTitle(notification.getTitle())
                .setContentText(notification.getBody())
                .setAutoCancel(true)
                .setContentIntent(pendingIntent);

我希望在通知的右侧看到该图像。 我已经将这些文件放在了drawable和mipmap中,没有结果。

notification

3 个答案:

答案 0 :(得分:0)

您尝试过使用完美的正方形图像吗?我的意思是,宽度和高度相同。 也许是问题所在。

我展示了一个带有144x144 png图像的largeIcon,它的工作原理就像一个饰物。

答案 1 :(得分:0)

Android图标(和其他UI元素,如拖动长度)以dp为单位。 dp是与设备/密度无关的像素。 1 dp相当于160 dpi屏幕上的1 px。但是要转换为其他屏幕密度,您需要将其乘以密度因子。因此,通常建议为大多数图标提供多个图像。

例如,状态栏中使用的通知图标指定为24x24 dp,边距为1 dp(因此实际图标仅占用22x22 dp光学正方形,尽管有些AA可以渗入该1 dp保证金/安全框架)。要将24 dp转换为实际像素大小,请使用以下粗略计算:

display density  dp units * scale = px units
ldpi  ~120 dpi   24x24 dp * .75   = 18x18 px
mdpi  ~160 dpi   24x24 dp * 1.0   = 24x24 px
hdpi  ~240 dpi   24x24 dp * 1.5   = 36x36 px
xhdpi ~320 dpi   24x24 dp * 2.0   = 48x48 px

答案 2 :(得分:0)

请先尝试在样式上设置位图


NotificationCompat.BigPictureStyle样式=新的NotificationCompat.BigPictureStyle();         style.bigPicture(bitmap);

然后在上面使用上面的样式
setStyle(style)