2

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

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

Google Developer Codelabs 表盘

第二个默认安装在 AW2 中,称为“Elements 模拟”(但也有一个“Elements Digital”,非常相似)。我已经禁用了除了左边的所有其他并发症。

Elements 模拟表盘

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

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

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

根据文档,ComplicationData与 type 的并发症相关的唯一信息TYPE_ICON是一个图标,可以通过调用来检索complicationData.getIcon()。而且,事实上,图标就在那里,它是未读通知的实际数量的图像。圆圈中的数字图像(如您在第一个表盘中看到的)。没有铃铛图标(第二个表盘),并且另一个变量中没有单独的未读计数值。没有什么。

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

我错过了什么?如何以类似于第二张图片中的方式绘制复杂功能?

谢谢。

4

1 回答 1

2

如我所愿,我设法绘制了第二张图像(Elements 模拟表盘)中的未读计数并发症。

这是声明复杂性支持类型的顺序问题。在 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 )是:“类型应该按优先顺序列出,通常类型提供更多信息,例如作为范围值,给予更高的偏好"

希望这可以帮助。

于 2017-07-03T09:42:25.480 回答