Modifier l'apparence des éléments de manière dynamique

Vous pouvez modifier l'apparence de certaines parties du cadran (par exemple, la position, la taille ou la visibilité) en fonction de sources de données d'entrée telles que l'heure ou l'accéléromètre.

Dans Watch Face Format, cela est possible grâce à l'élément Transform. Tous les éléments ne peuvent pas être transformés, mais les principaux éléments transformables incluent les éléments Group et Part*, ainsi que les primitives de dessin telles que les formes et les styles.

Les attributs transformables de chaque élément sont indiqués comme tels dans la documentation de référence.

La transformation elle-même est spécifiée dans l'attribut value, dans le langage d'expression du format de cadran, qui peut inclure des sources de données. target spécifie l'attribut à modifier dans l'élément parent.

Par exemple, pour modifier l'angle d'un Arc afin de refléter la progression d'une étape :

<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
    <Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
    <Stroke color="#FF00FF" thickness="20" />
</Arc>

Lorsque STEP_PERCENT change, endAngle est recalculé et Arc redessiné.

Lorsqu'un élément de transformation modifie une valeur cible, il peut être souhaitable que cette modification soit animée sur une période donnée, plutôt que d'être immédiate, ce qui pourrait être choquant. Utilisez l'élément Animation pour ce faire :

<PartDraw x="100" y="150" width="250" height="120" >
    <Ellipse x="0" y="0" width="50" height="50">
        <Fill color="#ff0000" />
        <!-- Red ball with no animated transition -->
        <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200"/>
    </Ellipse>
    <Ellipse x="0" y="100" width="50" height="50">
        <Fill color="#00ff00" />
        <!-- Green ball eases between each position -->
        <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200">
            <Animation duration="1" interpolation="EASE_IN_OUT" />
        </Transform>
    </Ellipse>
</PartDraw>

Transformations à l'aide de l'accéléromètre

Bien qu'il soit possible d'utiliser l'élément Transform avec des sources de données gyroscopiques telles que ACCELEROMETER_ANGLE_X pour modifier la position ou l'échelle d'un élément, le format Watch Face Format fournit un élément distinct à cet effet : Gyro.

Cela vous permet de simplifier l'image globale, en séparant la transformation basée sur le mouvement des autres transformations telles que celles basées sur le temps, qui peuvent être appliquées au même élément.