Modificare l'aspetto degli elementi in modo dinamico

Potresti voler modificare l'aspetto di alcune parti del quadrante, ad esempio la posizione, le dimensioni e la visibilità, spesso in risposta a origini di dati di input come l'ora del giorno o l'accelerometro.

In Watch Face Format, questo viene ottenuto utilizzando l'elemento Transform. Non tutti gli elementi possono essere trasformati, ma gli elementi trasformabili principali includono: elementi Group, Part* e primitive di disegno come forme e stili.

Gli attributi di ciascun elemento che possono essere trasformati sono contrassegnati come tali nella documentazione di riferimento.

La trasformazione stessa è specificata nell'attributo value, nel linguaggio di espressione del formato del quadrante, che può includere origini dati. target specifica l'attributo da modificare nell'elemento principale.

Ad esempio, per modificare l'angolo di un Arc in modo che rifletta l'avanzamento del passaggio:

<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
  <Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
  <...>
</Arc>

Quando STEP_PERCENT cambia, endAngle viene ricalcolata e Arc viene ridisegnato.

Quando un elemento Transform modifica un valore target, può essere opportuno animare questa modifica in un periodo di tempo, anziché apportare una variazione immediata del valore, che potrebbe risultare sgradevole. Utilizza l'elemento Animation per:

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

Trasformazioni utilizzando l'accelerometro

Sebbene sia possibile utilizzare l'elemento Transform con origini dati giroscopiche come ACCELEROMETER_ANGLE_X per modificare la posizione o la scala di un elemento, il formato del quadrante fornisce un elemento separato per questi: Gyro.

In questo modo puoi semplificare il quadro generale, separando la trasformazione basata sul movimento da altre trasformazioni, ad esempio quelle basate sul tempo, che potrebbero essere applicate allo stesso elemento.