Mithilfe von Zusatzfunktionen können auf physischen und Smartwatch-Zifferblättern zusätzliche Informationen angezeigt werden. Normalerweise wählt der Nutzer aus, welche Informationen eine Zusatzfunktion abbildet.
Zusatzfunktionen können in der Regel in verschiedenen Formaten angezeigt werden:
- Rechteckig
- Kreisförmig
- Bogen am Rand des Zifferblatts
- Hintergrund, der das gesamte Zifferblatt abdeckt
In Wear OS lässt sich das System für Zifferblatt-Zusatzfunktionen in zwei Teile aufgliedern:
- Die Datenquelle einer Zusatzfunktion
- Das Rendern einer Zusatzfunktion
Für eine Gesundheits- und Fitness-App kann beispielsweise eine Datenquelle für die Zusatzfunktion „Tägliche Schritte“ implementiert werden. Die Daten können dann vom WFF-Zifferblatt gerendert werden.
Datenquellen in Zusatzfunktionen
Die Datenquelle einer Zusatzfunktion gibt nur die darzustellenden Daten und den Funktionstyp an. Sie spielt keine Rolle bei der Darstellung der Daten auf dem Zifferblatt.
Die Datenquelle für die Zusatzfunktion „Tägliche Schritte“ einer Gesundheits- und Fitness-App kann beispielsweise die folgenden Daten liefern, welche aussagen, dass der Nutzer heute 2.400 seiner angestrebten 10.000 Schritte absolviert hat:
- Type:
GOAL_PROGRESS - Value:
2400 - TargetValue:
10000
Diese Daten enthalten keine Informationen dazu, wie sie gerendert werden sollen.
Das Zifferblatt gibt an, welche Zusatzfunktionstypen darauf gerendert werden können. Dadurch wird festgelegt, welche Datenquellen dem Nutzer zur Auswahl stehen.
Für das Beispiel „Tägliche Schritte“ legen Sie in der Zifferblattdefinition fest, wie Value und TargetValue gerendert werden sollen: als Text oder als Fortschrittsanzeige. Das liegt in Ihrer Entscheidung als Zifferblattdesigner.
Zusatzfunktionen definieren
Optionale Zusatzfunktionen für das Zifferblatt stellen einen Mehrwert für den Nutzer dar, da er damit eine größere Auswahl an Informationen auf einen Blick erhält und diese an seine Bedürfnisse anpassen kann.
Sie entscheiden, ob und wie viele Zusatzfunktionen Sie auf Ihrem Zifferblatt verfügbar machen, welche Formate und Positionen Sie dafür bereitstellen und welche Datentypen unterstützt werden.
Jeder Bereich auf dem Zifferblatt, der für eine Zusatzfunktion vorgesehen ist, wird als ComplicationSlot deklariert. Darin wird ein Begrenzungsrahmen definiert, innerhalb dessen die Funktion gerendert wird:
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="100" y="100" width="100" height="100"> <BoundingOval x="0" y="0" width="100" height="100" /> <Complication type="SHORT_TEXT"> <!-- Complication content for rendering SHORT_TEXT data goes here --> </Complication> <Complication type="SMALL_IMAGE"> <!-- Complication content for rendering SMALL_IMAGE data goes here --> </Complication> </ComplicationSlot>
Die Vorgehensweise für andere Rahmenformen wie Rechtecke und Ovale ist ähnlich.
Zusatzfunktionstyp und Standardeinstellungen festlegen
Das Zusatzfunktionssystem bietet verschiedene Typen, mit denen angegeben wird, welche Art von Daten auf dem Zifferblatt dargestellt werden können. Eine als Bogen dargestellte Zusatzfunktion, wie oben gezeigt, eignet sich beispielsweise für numerische Daten wie RANGED_VALUE, nicht aber für einen bildbasierten Datentyp wie SMALL_IMAGE.
Definieren Sie in Ihrer ComplicationSlot-Deklaration supportedTypes als die durch Leerzeichen getrennte Liste an Typen, die in diesem Slot gerendert werden können.
Die Angabe der Standardquelle für den ComplicationSlot ist obligatorisch, außer Sie erlauben den Typ EMPTY. In diesem Fall ist das Festlegen einer Standardquelle optional:
<ComplicationSlot slotId="2" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="250" y="100" width="100" height="100"> <DefaultProviderPolicy defaultSystemProvider="STEP_COUNT" defaultSystemProviderType="SHORT_TEXT" /> <!-- ... --> </ComplicationSlot>
Zwar müssen System-Provider angegeben werden, aber Sie können darüber hinaus auch andere Provider einbinden, z. B. Plug-ins, die standardmäßig verwendet werden können, sofern sie bereits installiert sind.
Zusatzfunktionsdaten rendern
Nachdem Sie das ComplicationSlot-Element, den Rahmen und das enthaltende Complication-Element definiert haben, können Sie Standard-WFF-Komponenten wie PartDraw, PartImage und PartText verwenden, um die Daten der Zusatzfunktion visuell umzusetzen.
Elemente in den Complication-Daten haben Zugriff auf eine spezielle Datenquelle: COMPLICATION. Diese liefert die Daten aus den diversen Eigenschaften, die von der Datenquelle der Zusatzfunktion gesetzt werden.
Eine SMALL_IMAGE-Zusatzfunktion kann beispielsweise die Werte COMPLICATION.SMALL_IMAGE und COMPLICATION.SMALL_IMAGE_AMBIENT festlegen. Diese können anstelle von „resource“ in einem Image-Element verwendet werden:
<Complication type="SMALL_IMAGE"> <PartImage x="0" y="0" width="100" height="100"> <Image resource="[COMPLICATION.SMALL_IMAGE]" /> </PartImage> </Complication>
Welche Eigenschaften für eine Zusatzfunktion gesetzt werden können, ist von Typ zu Typ unterschiedlich. Eine vollständige Liste finden Sie in der Complication-Dokumentation.
In diesem Beispiel wird der Text einer SHORT_TEXT-Zusatzfunktion angezeigt:
<Complication type="SHORT_TEXT"> <PartText x="0" y="0" width="100" height="100"> <Text> <Font size="32"> <Template> <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" /> </Template> </Font> </Text> </PartText> </Complication>
Nützlichkeit beim Rendern von Zusatzfunktionen maximieren
Das Hinzufügen von ComplicationSlots zu Ihrem Zifferblatt kann einige Herausforderungen mit sich bringen:
- Es gibt zahlreiche Datentypen für Zusatzfunktionen. Verschiedene Apps können Daten unterschiedlicher Typen bereitstellen.
- Jeder Datentyp für Zusatzfunktionen hat neben obligatorischen Eigenschaften auch viele, die optional gesetzt werden können. Versuchen Sie, mit Ihrem Rendering aus den verfügbaren Eigenschaften möglichst viel Nutzen zu ziehen, und berücksichtigen Sie dabei die diversen Kombinationen, die möglich sind.
Hier sind einige Strategien, um diese Herausforderungen zu stemmen:
- Unterstützung mehrerer Zusatzfunktionstypen in jedem Slot. Viele Datenquellen für Zusatzfunktionen liefern zum Beispiel
SHORT_TEXT. Wenn Sie also eine Reihe verschiedener Typen wieSHORT_TEXT RANGED_VALUEin einer kleinen, kreisförmigen Zusatzfunktion unterstützen, erhöhen Sie damit die Kompatibilität. - Geben Sie verschiedenen Zusatzfunktionstypen ein Zuhause auf Ihrem Zifferblatt. Beispielsweise könnten Sie
RANGED_VALUEundGOAL_PROGRESSals bogenförmige Zusatzfunktionen am Rand des Zifferblatts rendern undSHORT_TEXTundSMALL_IMAGEin kreisförmigen Zusatzfunktionen im Hauptbereich unterstützen. - Prüfen Sie, ob für die einzelnen Datentypen optionale Elemente vorhanden sind.
SHORT_TEXTkann zum Beispiel Eigenschaften für einen Titel und ein Bild enthalten. Ihr Layout beim Rendern der verfügbaren Daten kann sich danach richten, ob ein Bild oder Titel verfügbar ist.