如何在Android Wear通知上显示清晰的背景图像?

7
据我所知,Android Wear 中设置通知背景图片有两种方式。值得一提的是,它们都以以下代码为开头:
   Bitmap bitmap;
   Notification.Builder bob = new Notification.Builder(this)
            .setContentTitle(title)

假设您已经设置好了通知,包括以下步骤。同时,假设bitmap已经初始化为适当大小的图像(虽然这是另一个问题)。

方法一:

   bob.setLargeIcon(bitmap);

这个方法是可行的,但据我所知,无论位图大小如何,bitmap 在通知背景中总是模糊的。
方法二:
   bob.setStyle(new Notification.BigPictureStyle().bigPicture(bitmap));

这将清除位图,但不幸的是会在可穿戴设备上插入一个额外的“页面”,该页面除了位图外是空白的。我想这里的想法是要向用户展示图像 - 但我不是,我只想要一个非模糊的背景。
有没有办法实现这个目标?
1个回答

6

请使用WearableExtender中的setBackground(Bitmap)方法,而不是使用setLargeIcon(Bitmap)。该方法将设置背景位图,不会被模糊处理。

Notification.Builder wearableBuilder = new Notification.Builder(context)
    ...
    .extend(new WearableExtender().setBackground(bitmap));

太好了!作为以后的参考,如果您还想使用 setLargeIcon(),似乎会禁用它...但是您可以通过调用 WearableExtender.setContentIcon() 来获得等效的功能。 - Sterling
是的,setBackground()会替换Wearable上“模糊”的setLargeIcon()背景。因此,如果您的setLargeIcon()是某个联系人图像或其他类似图像-只需使用setBackground,无需添加任何内容。但是,如果您有一些描述您内容的信息图标-可以在setContentIcon中添加它:)奖励:如果您想使Android Wear上的通知可点击,则可以为其分配操作。 WearableExtender上的setContentAction(int)方法将给定操作“合并”到卡片中+此操作的图标将显示在contentIcon的位置。 - Maciej Ciemięga
setBackground() 仍然有点模糊,但比之前好一些了。如果图片的大小超过 400x400,它会被裁剪成正方形并缩小到该尺寸,然后被拉伸以使其在屏幕两侧各延伸出屏幕大小的 20%。这种计算方式意味着对于屏幕大于 285x285 的手表,背景图片会变得模糊。 - Karu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接