Le complicazioni sono una funzionalità dei quadranti sia fisici che per smartwatch che mostrano informazioni aggiuntive. In genere è l'utente a selezionare le informazioni da mostrare in una complicazione.
In genere, le complicazioni sono disponibili in diverse forme:
- Rettangolare
- Circolare
- Archi lungo il bordo del quadrante
- Sfondo che copre l'intero quadrante
In Wear OS, il sistema di complicazioni può essere suddiviso in due parti:
- L'origine dati della complicazione
- Il rendering della complicazione
Ad esempio, un'app per la salute e l'attività fisica potrebbe implementare un'origine dati della complicazione Passi giornalieri. Questo potrebbe essere visualizzato dal quadrante WFF.
Origini dati nelle complicazioni
Le origini dati delle complicazioni specificano solo i dati da visualizzare e il tipo di complicazione. L'origine dati non ha alcun ruolo nel determinare come devono essere rappresentati i dati sul quadrante.
Ad esempio, l'origine dati della complicazione Passi giornalieri per la salute e l'attività fisica potrebbe produrre i seguenti dati per indicare che l'utente ha percorso oggi 2400 dei 10000 passi previsti:
- Tipo:
GOAL_PROGRESS
- Valore:
2400
- TargetValue:
10000
Tieni presente che questi dati non indicano come deve essere eseguito il rendering.
Il quadrante specifica i tipi di complicazioni che è in grado di visualizzare. Questo determina quali origini dati sono disponibili per l'utente.
Nel caso dell'esempio Passi giornalieri, nella definizione del quadrante puoi decidere come visualizzare Value
e TargetValue
: come testo o come indicatore di avanzamento? Sei tu, in qualità di designer del quadrante, a dover decidere.
Definire le complicazioni
Offrire la possibilità di mostrare complicazioni sul quadrante può essere utile per gli utenti, in quanto consente loro di avere a colpo d'occhio una gamma più ampia di informazioni personalizzate in base alle loro esigenze.
Decidi se e quante complicazioni supportare sul quadrante, nonché le relative forme e il posizionamento, nonché i tipi di dati supportati.
Ogni spazio sul quadrante per una complicazione è definito come un
ComplicationSlot
all'interno del quale è definita un'area di delimitazione per il rendering della
complicazione:
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
x="0" y="0" width="225" height="225">
<BoundingArc centerX="225" centerY="225" width="450" height="450"
startAngle="270" endAngle="360" thickness="50" />
<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>
Un approccio simile può essere applicato alle altre forme di contenimento, come il rettangolo e l'ellisse.
Impostare il tipo di complicazione e i valori predefiniti
Il sistema di complicazioni offre diversi tipi, che consentono al quadrante di esprimere il tipo di dati che può rappresentare sullo schermo. Ad esempio, una complicazione ad arco, come mostrato in precedenza, non è molto adatta per un tipo di dati delle complicazioni basato su immagini come SMALL_IMAGE
, ma potrebbe funzionare molto bene per i dati numerici come RANGED_VALUE
.
Nella dichiarazione ComplicationSlot
, imposta supportedTypes
sull'elenco separato da spazi dei tipi che possono essere visualizzati in questo spazio.
Devi anche impostare l'origine predefinita per ComplicationSlot
, a meno che non consenta il tipo EMPTY
, nel qual caso l'impostazione di un valore predefinito è facoltativa:
<ComplicationSlot slotId="1" ...>
<BoundingArc .../>
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT" />
</ComplicationSlot>
Oltre a dover specificare i provider di sistema, se vuoi puoi specificare anche i provider non di sistema, ad esempio i provider di terze parti da utilizzare per impostazione predefinita, se sono già installati.
Eseguire il rendering dei dati delle complicazioni
Dopo aver definito gli elementi ComplicationSlot
, limiti e contenente Complication
, utilizza i componenti WFF standard, come PartDraw, PartImage
e PartText
, per visualizzare i dati della complicazione.
Gli elementi all'interno dei dati Complication
hanno accesso a un'origine dati speciale:
COMPLICATION
, che fornisce le varie proprietà dei dati impostate dall'origine dati della complicazione.
Ad esempio, una complicazione SMALL_IMAGE
può impostare i valori COMPLICATION.SMALL_IMAGE
e COMPLICATION.SMALL_IMAGE_AMBIENT
. Questi valori possono essere utilizzati al posto di
resource in un elemento Image
:
<Complication type="SMALL_IMAGE">
<PartImage ...>
<Image resource="[COMPLICATION.SMALL_IMAGE]" />
</PartImage>
</Complication>
Ogni tipo di complicazione ha un insieme diverso di proprietà disponibili che possono essere impostate. Per un elenco completo di ciascuna, consulta la documentazione di riferimento Complication
.
Questo esempio mostra il testo di una complicazione SHORT_TEXT
:
<Complication type="SHORT_TEXT">
<PartText ...>
<Text>
<Font ...>
<Template>
<![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
</Template>
</Font>
</PartImage>
</Complication>
Massimizzare l'utilità durante il rendering delle complicazioni
Esistono una serie di problemi quando aggiungi ComplicationSlots
al quadrante:
- Esistono numerosi tipi di dati Complication. App diverse possono fornire uno o più di questi elementi.
- Ogni tipo di dati della complicazione, oltre a disporre di proprietà obbligatorie, ha anche molte proprietà facoltative. Verifica che il rendering più utile venga eseguito dalle proprietà disponibili, tenendo conto delle diverse combinazioni.
Per risolvere questi problemi, alcune strategie includono:
- Supporta più tipi di complicazioni per ogni slot. Ad esempio,
SHORT_TEXT
è ampiamente supportato dalle origini dati delle complicazioni, quindi il supporto di un numero di tipi diversi, ad esempioSHORT_TEXT RANGED_VALUE
per una piccola complicazione circolare, aumenta la compatibilità. - Offrire diversi tipi di complicazioni sul quadrante. Ad esempio, potresti supportare
RANGED_VALUE
eGOAL_PROGRESS
per le complicazioni ad arco posizionate sui bordi eSHORT_TEXT
eSMALL_IMAGE
per le complicazioni circolari nel corpo del quadrante. - Controlla la presenza di elementi facoltativi per ogni tipo di dati. Ad esempio,
SHORT_TEXT
supporta facoltativamente una proprietà title e un'immagine. Il layout per il rendering degli dati disponibili potrebbe variare a seconda che un'immagine o un titolo sia disponibile o meno.