Mit UserConfigurations
können Sie Optionen erstellen, aus denen Nutzer auswählen können. Sie können das Aussehen der Zifferblattelemente anhand der ausgewählten Werte anpassen.
Die Nutzerkonfigurationsoptionen können folgende sein:
BooleanConfiguration
: Wird in der Regel verwendet, wenn der Nutzer die Möglichkeit hat, ein Element ein- oder auszublenden oder zwischen zwei Stilen zu wählen.ListConfiguration
: bietet dem Nutzer eine Reihe von Optionen. Angenommen, das Zifferblatt bietet vier verschiedene Hintergrundbilder zur Auswahl.ColorConfiguration
: Hier werden Farbdesigns definiert, aus denen der Nutzer sein bevorzugtes Design auswählen kann.
Boolesche Optionen
Boolesche Optionen sind die einfachste Nutzerkonfiguration. Sie können so definiert werden:
<WatchFace ...>
<UserConfigurations>
<!-- show_date and show_date_label defined in res/values/strings.xml -->
<BooleanConfiguration id="show_date"
displayName="show_date_label"
screenReaderText="show_date_label"
defaultValue="TRUE"
/>
</UserConfigurations>
...
</WatchFace>
Boolesche Optionen können dann auf zwei Arten verwendet werden:
BooleanConfiguration
-Struktur im ZifferblattScene
verwenden:<Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content to show date --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration> </Scene>
Konfigurationsoptionen können nicht verschachtelt werden. Daher ist Folgendes ungültig:
<!-- Will not work --> <!-- <Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <BooleanConfiguration id="show_time"> <BooleanOption id="TRUE"> Content intended for when show_date and show_time both set to TRUE </BooleanOption> </BooleanConfiguration> </BooleanOption> </BooleanConfiguration> </Scene> -->
Alternativ kann die Konfigurationsoption in Ausdrücken verwendet werden:
<Condition> <Expressions> <Expression name="my_expression"> <!-- Use show_date as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.show_date] == "TRUE" && ... ]]> </Expression> </Expressions> <Compare expression="my_expression"> <!-- Content goes here --> </Compare> </Condition>
Listenformate
Listenoptionen funktionieren sehr ähnlich wie boolesche Optionen. So können Sie beispielsweise eine Liste mit Hintergrundbildern zur Auswahl für den Nutzer bereitstellen:
<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
screenReaderText="bg_img_lbl" defaultValue="0">
<ListOption id="0" displayName="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico" />
<ListOption id="1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" />
...
</ListConfiguration>
Ähnlich wie bei booleschen Optionen gibt es auch hier zwei Möglichkeiten:
ListConfiguration
-Element inScene
verwenden:<ListConfiguration id="bg_img"> <ListOption id="0"> <!-- Show background 0 --> </ListOption> <ListOption id="1"> <!-- Show background 1 ... etc --> </ListOption> </ListConfiguration>
Alternativ kann die Konfigurationsoption auch in komplexeren Ausdrücken verwendet werden:
<Condition> <Expressions> <Expression name="background_zero_and_something_else"> <!-- Use bg_img as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.bg_img] == "0" && ... ]]> </Expression> </Expressions> <Compare expression="background_zero_and_something_else"> <!-- Content goes here --> </Compare> </Condition>
Farbformate
Mit dem Zifferblattformat können Sie Farbdesigns über ColorConfiguration
definieren.
Nutzer können im Zifferblatteditor das gewünschte Design auswählen. Die Farben dieses Designs können dann in der gesamten Zifferblattdefinition verwendet werden.
So definieren Sie beispielsweise ein Design mit zwei Einträgen und drei Farben:
Entspannt |
|||
Urban |
Definieren Sie ColorConfiguration
so:
<UserConfigurations>
<ColorConfiguration id="myThemeColor" displayName="theme_label" defaultValue="0">
<ColorOption id="0" displayName="relaxed_label" colors="#3083dc #f8ffe5 #7dde92" />
<ColorOption id="1" displayName="urban_label" colors="#f4b393 #fc60a8 #7a28cb" />
</ColorConfiguration>
</UserConfigurations>
Diese können dann anstelle von Hexadezimalfarbwerten als Datenquellen verwendet werden. Beachten Sie, wie der Indexwert angegeben wird, um das erste, zweite oder dritte Element des Themas auszuwählen:
<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />
Wenn für jede ColorOption
nur eine Farbe definiert ist, können Sie auch ohne Index auf sie als CONFIGURATION.myThemeColor
verweisen.
|
|
Der Nutzer kann dann im Zifferblatteditor den gewünschten Themeneintrag auswählen.
Geschmacksrichtungen
Hinweis: Varianten werden ab Version 2 des Zifferblattformats unterstützt.
UserConfigurations
bieten Nutzern viel Flexibilität. Wenn Sie jedoch die Anzahl der konfigurierten Elemente erhöhen, kann die Anzahl der Kombinationen überwältigend werden.
Mit Flavors
können Sie Voreinstellungen für die UserConfigurations
definieren, die Sie hervorheben möchten.
Der Nutzer kann dann in der Companion App aus diesen voreingestellten Varianten auswählen oder weiterhin jeden Konfigurationswert einzeln auswählen.
Angenommen, Sie definieren für ein Zifferblatt drei Einstellungen (innere Elemente und Details zu Attributen wurden aus Gründen der Übersichtlichkeit weggelassen):
<UserConfigurations>
<ColorConfiguration id="themeColor" ...>
<ColorOption id="0" displayName="bright_label" ... />
<ColorOption id="1" displayName="monochrome_label" ... />
</ColorConfiguration>
<ListConfiguration id="clockAppearance" ... >
<ListOption id="0" displayName="big_and_bold_label" ... />
<ListrOption id="1" displayName="minimal_label" ... />
</ListConfiguration>
<BooleanConfiguration id="showHr" ... />
</UserConfigurations>
Sie haben Folgendes definiert:
- Eine Farbdesignkonfiguration, mit der der Nutzer auswählen kann, welches Farbdesign angewendet werden soll. Sie haben zwei Designs definiert, eins mit vielen Farben und eins in Schwarz-Weiß.
- Eine Liste mit Optionen für das Aussehen der Uhr. Sie haben zwei Optionen definiert: eine große, kräftige Uhr und eine minimalistischere Uhr.
- Eine Auswahl, ob die Herzfrequenz des Nutzers auf dem Zifferblatt angezeigt werden soll.
Außerdem wird auf dem Zifferblatt ein ComplicationSlot
angezeigt.
Sie entscheiden, dass Sie zwei Flavors
hervorheben möchten.
Es gibt viele weitere Kombinationen dieser Einstellungen, aber Sie sind der Meinung, dass diese am besten funktionieren:
- Sportlicher Geschmack: Dieser besteht aus:
- Das helle Farbdesign, das Sie beleben und aktivieren soll (ID: 0)
- Die große und auffällige Uhr, die auch beim Training gut sichtbar ist (ID: 0)
- Herzfrequenz als Referenz auf dem Zifferblatt
- Der Bereich für Zusatzfunktionen mit der Schrittzahl
- Ein raffinierter Geschmack: Dazu gehören:
- Das einfarbige Farbschema, das zu jedem Outfit passt (ID: 1)
- Die minimalistische Uhr, die in jede Umgebung passt (ID: 1)
- Auf dem Zifferblatt wird keine Herzfrequenz angezeigt
- Der Zusatzfunktions-Slot ist nicht aktiviert.
Varianten müssen in watch_face_info.xml
aktiviert werden:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
...
<MultipleInstancesAllowed value="true" />
<FlavorsSupported value="true" />
</WatchFaceInfo>
Anschließend wird jede Variante innerhalb von UserConfigurations
so definiert:
<Flavors defaultValue="sportyFlavor">
<Flavor id="sportyFlavor" ... >
<Configuration id="themeColor" optionId="0"/>
<Configuration id="clockAppearance" optionId="0"/>
<Configuration id="showHr" optionId="TRUE"/>
<ComplicationSlot slotId="0">
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT"/>
</ComplicationSlot>
</Flavor>
<Flavor id="sophisticatedFlavor" ... >
<Configuration id="themeColor" optionId="1"/>
<Configuration id="clockAppearance" optionId="1"/>
<Configuration id="showHr" optionId="FALSE"/>
<ComplicationSlot slotId="0">
<!--
Type here is set to empty to demonstrate how to hide a complication
slot in Flavors.
-->
<DefaultProviderPolicy
defaultSystemProvider="SUNRISE_SUNSET"
defaultSystemProviderType="EMPTY"/>
</ComplicationSlot>
</Flavor>
</Flavors>