【问题标题】:How to display clear background image on Android Wear notification?如何在 Android Wear 通知上显示清晰的背景图像?
【发布时间】:2014-07-19 14:17:25
【问题描述】:

据我所知,有两种方法可以在 Android Wear 中设置通知的背景图像。为了记录,两者都以:

   Bitmap bitmap;
   Notification.Builder bob = new Notification.Builder(this)
            .setContentTitle(title)

...等等来设置通知。还假设bitmap 已初始化为适当大小的图像(尽管这是另一个问题)。

方法一:

   bob.setLargeIcon(bitmap);

这可行,但无论通知的大小如何,AFAICT bitmap 总是在通知的背景中模糊不清。

方法二:

   bob.setStyle(new Notification.BigPictureStyle().bigPicture(bitmap));

这会清除位图,但会带来不幸的副作用,即在可穿戴设备上插入一个额外的“页面”,即除了位图之外的空白页面。我想这里的想法是你试图向用户展示图像 - 但我不是,我只是想要一个不模糊的背景。

有没有办法做到这一点?

【问题讨论】:

    标签: wear-os


    【解决方案1】:

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

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

    【讨论】:

    • 完美!为了将来参考,如果您想使用setLargeIcon(),这似乎禁用它...但您可以通过调用WearableExtender.setContentIcon() 来获得等效功能。
    • 是的,setBackground() 将替换可穿戴设备上的“模糊”setLargeIcon() 背景。因此,如果您的 setLargeIcon() 是一些联系人图像或其他此类图像 - 只需使用 setBackground 即可,无需添加任何内容。但是,如果您有一些描述您的内容的信息图标 - 您可以将其添加到 setContentIcon:) 奖励:如果您想让您的通知在 Android Wear 上可点击,您可以为其分配一个操作。 WearableExtender 上的 setContentAction(int) 方法会将给定动作“合并”到卡片中 + 此动作的图标将显示在 contentIcon 的位置。
    • setBackground() 仍然模糊,只是不那么模糊了。图像被裁剪成正方形,然后缩小到 400x400(如果它大于那个),然后拉伸到屏幕的每一侧突出屏幕尺寸的 20%。对于屏幕大于 285x285 的手表,数学计算意味着背景图像模糊。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多