Erscheinungsbild von Elementen dynamisch ändern

Möglicherweise möchten Sie das Aussehen von Teilen des Zifferblatts ändern, z. B. die Position, Größe oder Sichtbarkeit. Das geschieht oft als Reaktion auf Eingabedatenquellen wie die Tageszeit oder den Beschleunigungsmesser.

Im Watch Face-Format wird dies durch die Verwendung des Elements Transform erreicht. Nicht alle Elemente können transformiert werden. Zu den wichtigsten transformierbaren Elementen gehören Group- und Part*-Elemente sowie Zeichenprimitive wie Formen und Stile.

Attribute der einzelnen Elemente, die transformiert werden können, sind in der Referenzdokumentation entsprechend gekennzeichnet.

Die Transformation selbst wird im Attribut value in der Ausdruckssprache des Watch Face-Formats angegeben, die Datenquellen enthalten kann. Das target-Element gibt das Attribut an, das im übergeordneten Element geändert werden soll.

So ändern Sie beispielsweise den Winkel eines Arc, um den Fortschritt eines Schritts widerzuspiegeln:

<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>

Wenn sich STEP_PERCENT ändert, wird endAngle neu berechnet und das Arc neu gezeichnet.

Wenn ein Transform-Element einen Zielwert ändert, kann es wünschenswert sein, dass diese Änderung über einen bestimmten Zeitraum animiert wird und nicht sofort erfolgt, da dies störend wirken könnte. Verwenden Sie dazu das Animation-Element:

<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>

Transformationen mit dem Beschleunigungsmesser

Es ist zwar möglich, das Transform-Element mit gyroskopischen Datenquellen wie ACCELEROMETER_ANGLE_X zu verwenden, um die Position oder Skalierung eines Elements zu ändern, aber das Watch Face Format bietet dafür ein separates Element: Gyro.

So können Sie das Gesamtbild vereinfachen und bewegungsbasierte Transformationen von anderen Transformationen wie zeitbasierten Transformationen trennen, die möglicherweise auf dasselbe Element angewendet werden.