UserConfigurations ti consentono di creare opzioni tra cui l'utente può scegliere. Puoi regolare l'aspetto degli elementi del quadrante in base ai valori scelti.
Le opzioni di configurazione utente possono essere:
BooleanConfiguration: in genere utilizzato per i casi in cui l'utente potrebbe avere la possibilità di mostrare o meno un elemento oppure scegliere tra due stiliListConfiguration: offre all'utente una serie di opzioni. Ad esempio, se il quadrante ha quattro immagini di sfondo diverse tra cui scegliereColorConfiguration: definisce i temi cromatici tra cui l'utente può selezionare il suo preferito.
Opzioni booleane
Le opzioni booleane sono forse le più semplici delle configurazioni utente. Possono essere definiti come segue:
<!-- Under WatchFace element --> <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>
Le opzioni booleane possono essere utilizzate in due modi:
Utilizzando la struttura
BooleanConfigurationall'interno del quadranteScene:<!-- Within the main Scene of the watch face --> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content when date required --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration>
Tieni presente che le opzioni di configurazione non possono essere nidificate nel loro utilizzo.
In alternativa, l'opzione di configurazione può essere utilizzata nelle espressioni:
<Expressions> <Expression name="my_expression"> <!-- Use show_date as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.show_date] == "TRUE" && [HOUR_0_23] < 15]] </Expression> </Expressions> <Compare expression="my_expression"> <!-- Content goes here --> </Compare> </Condition>
Opzioni elenco
Le opzioni di elenco funzionano in modo molto simile alle opzioni booleane. Ad esempio, per fornire un elenco di immagini di sfondo tra cui l'utente può scegliere:
<!-- Under WatchFace element --> <UserConfigurations> <ListConfiguration id="background_image" displayName="background_image_label" icon="background_option_icon" screenReaderText="background_image_label" defaultValue="0"> <ListOption id="0" displayName="background0_image_label" screenReaderText="background0_image_label" icon="background0_icon" /> <ListOption id="1" displayName="background1_image_label" screenReaderText="background1_image_label" icon="background1_icon" /> ... </ListConfiguration> </UserConfigurations>
Come per le opzioni booleane, anche in questo caso esistono due modi per utilizzare questa funzionalità:
Utilizzo dell'elemento
ListConfigurationinScene:<!-- Within the main Scene of the watch face --> <ListConfiguration id="background_image"> <ListOption id="0"> <!-- ...Content for option 0 --> </ListOption> <ListOption id="1"> <!-- ...Content for option 1 --> </ListOption> </ListConfiguration>
In alternativa, l'opzione di configurazione può essere utilizzata in espressioni più complesse:
<Expressions> <Expression name="background_zero_and_something_else"> <!-- Use as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.background_image] == "0" && [HOUR_0_23] < 15]] </Expression> </Expressions> <Compare expression="background_zero_and_something_else"> <!-- Content goes here --> </Compare> </Condition>
Temi colore
Watch Face Format ti consente di definire i temi di colore tramite ColorConfiguration.
Gli utenti possono selezionare il tema che preferiscono dall'editor del quadrante e i
colori di questo tema possono essere visualizzati in tutta la definizione del quadrante.
Ad esempio, per definire un tema con due voci e tre colori, definisci un ColorConfiguration come segue:
<!-- Under WatchFace element --> <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>
Questi possono poi essere utilizzati come origini dati anziché come valori di colore esadecimali. Nota come viene specificato il valore dell'indice per selezionare il primo, il secondo o il terzo elemento del tema:
<AnalogClock x="0" y="0" width="450" height="450"> <HourHand resource="hour" x="220" y="55" width="20" height="190" pivotX="0.5" pivotY="0.9210" tintColor="[CONFIGURATION.myThemeColor.0]"/> <MinuteHand resource="minute" x="222" y="30" width="16" height="220" pivotX="0.5" pivotY="0.9" tintColor="[CONFIGURATION.myThemeColor.1]"/> <SecondHand resource="second" x="226" y="20" width="8" height="245" pivotX="0.5" pivotY="0.8571" tintColor="[CONFIGURATION.myThemeColor.2]"/> </AnalogClock>
Nel caso specifico in cui ogni ColorOption ha un solo colore definito, è
anche possibile farvi riferimento come CONFIGURATION.myThemeColor, senza l'indice. L'utente può quindi selezionare la voce del tema che preferisce nell'editor dei quadranti.
Aromi
Nota: i gusti sono supportati nella versione 2 e successive del formato del quadrante.
UserConfigurations offrono all'utente molta flessibilità, ma man mano che aumenti il numero di elementi di configurazione che definisci, il numero di combinazioni può aumentare in modo esponenziale.
Flavors ti consente di definire preset per UserConfigurations che ritieni
valga la pena evidenziare.
L'utente può quindi scegliere tra questi gusti preimpostati all'interno dell'app complementare o continuare a scegliere ogni valore di configurazione singolarmente.
Ad esempio, considera un quadrante orologio in cui definisci tre impostazioni:
- Una configurazione del tema cromatico che consente all'utente di selezionare il tema cromatico da applicare. Hai definito due temi, uno colorato e uno monocromatico.
- Un elenco di sfondi. Hai definito due scelte tra cui l'utente può scegliere.
- Una scelta per mostrare o meno la frequenza cardiaca dell'utente sul quadrante.
Inoltre, sul quadrante è presente un ComplicationSlot.
Decidi che ci sono due Flavors che vuoi evidenziare all'utente.
Esistono molte altre combinazioni possibili di tutte queste impostazioni, ma queste sono
quelle che ritieni più efficaci:
- Un tocco sportivo: questo include:
- Il tema cromatico luminoso, per darti energia e farti muovere (ID: 0)
- La prima immagine di sfondo (ID: 0)
- Battito cardiaco visualizzato sul quadrante come riferimento
- Lo spazio per la complicazione che mostra il conteggio dei passi
- Un sapore sofisticato: questo consisterà in:
- Il tema cromatico monocromatico, per abbinarsi a qualsiasi outfit (ID: 1)
- La seconda immagine di sfondo (ID: 1)
- Nessun battito cardiaco visualizzato sul quadrante dell'orologio
- Lo spazio della complicazione non è abilitato
I flavor richiedono l'attivazione in watch_face_info.xml, quindi l'elemento FlavorsSupported
nel file watch_face_info.xml deve essere impostato con value="true".
Ogni variante è definita all'interno di UserConfigurations come segue:
<!-- Under UserConfigurations --> <Flavors defaultValue="sporty_flavor"> <Flavor id="sporty_flavor" displayName="flavor_sporty_label" screenReaderText="flavor_sporty_label"> <Configuration id="theme_color" optionId="0"/> <Configuration id="background_image" optionId="0"/> <Configuration id="show_hr" optionId="TRUE"/> <ComplicationSlot slotId="0"> <DefaultProviderPolicy defaultSystemProvider="STEP_COUNT" defaultSystemProviderType="SHORT_TEXT"/> </ComplicationSlot> </Flavor> <Flavor id="sophisticated_flavor" displayName="flavor_sophisticated_label" screenReaderText="flavor_sophisticated_label"> <Configuration id="theme_color" optionId="1"/> <Configuration id="background_image" optionId="1"/> <Configuration id="show_hr" 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>