Android Wear 2

时间:2017-07-02 12:54:33

标签: android wear-os android-wear-2.0 watchface android-wear-complication

我正在开发一系列Android Wear 2表盘,显然我发现了一个我无法解决的问题。

在图片中,您可以看到来自Google的两个简单的表盘(对不起,我还不能嵌入图片)。 第一个来自Google Developer Codelabs示例项目。

Google Developer Codelabs watch face

第二个默认安装在AW2中,它被称为" Elements analog" (但也有一个" Elements Digital",非常相似)。 除了左手以外,我已经禁用了所有其他并发症。

Elements analog watch face

两个表盘都显示来自同一复杂数据提供者的信息,系统未读通知计数(在复杂帮助程序中,选择常规 - >未读通知计数)。

但是,正如您所看到的,相同的信息以两种截然不同的方式显示。

我的问题是,我无法理解这是可能的。未读通知计数并发症的类型为TYPE_ICON

根据文档,ComplicationData中与TYPE_ICON类型的并发症相关联的唯一信息是一个图标,可通过调用complicationData.getIcon()进行检索。 并且,实际上,图标在那里是实际未读通知数的图像。圆圈中数字的图像(如第一个表盘中所示)。 没有钟形图标(第二个表盘),另一个变量中没有未分开的未读计数值。什么都没有。

我以为我可以避免使用Complications Drawable方法绘制并发症并按照我自己的方式进行,但正如我所说,我所知道的复杂功能,当它被创建或更新时,它是唯一的TYPE_ICON类型。没有其他的。没有提供商名称,没有价值。只是一个数字图标。

我错过了什么?如何以类似于第二张图像的方式绘制并发症?

感谢。

1 个答案:

答案 0 :(得分:2)

我设法在第二张图片(Elements模拟表面)中绘制未读计数复杂度,如我所愿。

这是 order 的问题,其中声明了复杂性支持的类型。在Codelabs监视面部代码(上面的第一张图片)中,这是单个复杂功能的声明顺序:

TYPE_RANGED_VALUE,
TYPE_ICON,
TYPE_SHORT_TEXT,
TYPE_SMALL_IMAGE

如您所见,TYPE_ICON类型位于TYPE_SHORT_TEXT之前。 这改变了数据提供者(对于未读通知计数是系统数据提供者)组装并发症数据的方式。

通过按此顺序声明复杂支持的类型:

TYPE_RANGED_VALUE,
TYPE_SHORT_TEXT,
TYPE_SMALL_IMAGE,
TYPE_ICON

复杂数据以TYPE_SHORT_TEXT的形式出现,带有铃声图标和未读计数值。

我认为文档目前还不清楚。 我找到的所有内容(此处:https://developer.android.com/training/wearables/watch-faces/complications.html)是:“类型应按优先顺序列出,通常类型提供更多信息,例如范围值,给定更高的偏好” < / p>

希望这有帮助。