Les complications sont une fonctionnalité des cadrans de montres physiques et connectées qui affichent des informations supplémentaires. En général, l'utilisateur sélectionne les informations qui s'affichent dans une complication.
Les complications se présentent généralement sous différentes formes :
- Rectangulaire
- Circulaire
- Arcs, le long du bord du cadran
- Arrière-plan couvrant l'intégralité du cadran
Dans Wear OS, le système de complications peut être divisé en deux parties :
- La source de données de complication
- Affichage de la complication
Par exemple, une application de santé et de remise en forme peut implémenter une source de données de complication "Nombre de pas quotidien". Cela peut être affiché par le cadran WFF.
Sources de données dans les complications
Les sources de données de complications ne spécifient que les données à afficher et le type de complication. La source de données ne joue aucun rôle dans la détermination de la manière dont les données doivent être représentées sur le cadran.
Par exemple, la source de données de complication "Pas quotidiens" de santé et remise en forme peut générer les données suivantes pour indiquer que l'utilisateur a effectué 2 400 des 10 000 pas qu'il s'est fixé comme objectif pour la journée :
- Type :
GOAL_PROGRESS - Valeur :
2400 - TargetValue :
10000
Notez qu'aucune information dans ces données n'indique comment elles doivent être affichées.
Le cadran indique les types de complications qu'il peut afficher. Cela détermine les sources de données que l'utilisateur peut ensuite sélectionner.
Dans l'exemple des pas quotidiens, vous décidez dans la définition de votre cadran comment afficher Value et TargetValue : sous forme de texte ou d'indicateur de progression ? C'est à vous, en tant que concepteur de cadrans, de décider.
Définir des complications
La possibilité d'afficher des complications sur le cadran de votre montre peut être précieuse pour les utilisateurs, car elle leur permet d'avoir un plus grand éventail d'informations en un coup d'œil et personnalisées selon leurs besoins.
Décidez si vous souhaitez prendre en charge des complications sur votre cadran, et combien. Déterminez également leur forme, leur position et les types de données qu'elles prennent en charge.
Chaque espace sur le cadran pour une complication est défini comme un ComplicationSlot dans lequel une zone de délimitation est définie pour le rendu de la complication :
<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>
Une approche similaire peut être appliquée aux autres formes de limites, telles que le rectangle et l'ellipse.
Définir le type de complication et les valeurs par défaut
Le système de complications fournit différents types de données, ce qui permet au cadran d'exprimer le type de données qu'il peut représenter à l'écran. Par exemple, une complication Arc, comme indiqué précédemment, ne convient pas à un type de données de complication basé sur une image tel que SMALL_IMAGE, mais pourrait très bien fonctionner pour des données numériques telles que RANGED_VALUE.
Dans votre déclaration ComplicationSlot, définissez supportedTypes sur la liste des types pouvant être affichés dans cet emplacement, séparés par des espaces.
Vous devez également définir la source par défaut pour ComplicationSlot, sauf si vous autorisez le type EMPTY. Dans ce cas, la définition d'une source par défaut est facultative :
<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>
En plus de devoir spécifier les fournisseurs système, vous pouvez éventuellement spécifier des fournisseurs non système, tels que des fournisseurs tiers à utiliser par défaut, s'ils sont déjà installés.
Afficher les données de complication
Après avoir défini l'élément ComplicationSlot, les limites et l'élément Complication contenant, utilisez des composants WFF standards, tels que PartDraw, PartImage et PartText, pour afficher les données de complication.
Les éléments des données Complication ont accès à une source de données spéciale : COMPLICATION. Celle-ci fournit les différentes propriétés de données définies par la source de données de complication.
Par exemple, une complication SMALL_IMAGE peut définir les valeurs COMPLICATION.SMALL_IMAGE et COMPLICATION.SMALL_IMAGE_AMBIENT. Vous pouvez utiliser les éléments suivants à la place de la ressource dans un élément Image :
<Complication type="SMALL_IMAGE"> <PartImage x="0" y="0" width="100" height="100"> <Image resource="[COMPLICATION.SMALL_IMAGE]" /> </PartImage> </Complication>
Chaque type de complication possède un ensemble différent de propriétés disponibles qui peuvent être définies. Pour obtenir la liste complète de chacune d'elles, consultez la référence Complication.
Cet exemple affiche le texte d'une complication SHORT_TEXT :
<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>
Maximiser l'utilité lors du rendu des complications
L'ajout de ComplicationSlots à votre cadran présente plusieurs difficultés :
- Il existe de nombreux types de données de complication. Différentes applications peuvent fournir un ou plusieurs de ces éléments.
- Chaque type de données de complication possède de nombreuses propriétés facultatives en plus de celles qui sont obligatoires. Vérifiez que le rendu le plus utile est effectué à partir des propriétés disponibles, en tenant compte des différentes combinaisons.
Pour résoudre ces problèmes, voici quelques stratégies :
- Prenez en charge plusieurs types de complications pour chaque emplacement. Par exemple,
SHORT_TEXTest largement accepté par les sources de données de complication. Par conséquent, la prise en charge de plusieurs types différents, tels queSHORT_TEXT RANGED_VALUEpour une petite complication circulaire, augmente la compatibilité. - Proposez différents types de complications sur le cadran. Par exemple, vous pouvez prendre en charge
RANGED_VALUEetGOAL_PROGRESSsur les complications Arc en périphérie, etSHORT_TEXTetSMALL_IMAGEsur les complications circulaires dans le corps du cadran. - Recherchez les éléments facultatifs pour chaque type de données. Par exemple,
SHORT_TEXTaccepte éventuellement une propriété de titre et une image. La mise en page pour le rendu des données disponibles peut varier selon qu'une image ou un titre sont disponibles ou non.