Öğe görünümünü dinamik olarak değiştirme

Genellikle saatin zamanı veya ivmeölçer gibi giriş veri kaynaklarına yanıt olarak kadran parçalarının görünümünü (ör. konum, boyut, görünürlük) değiştirmek isteyebilirsiniz.

Saat Kadranı Formatı'nda bu, Transform öğesi kullanılarak yapılır. Tüm öğeler dönüştürülemese de dönüştürülebilir ana öğeler şunlardır: Group, Part* öğeleri ve şekiller ile stiller gibi çizim primitifleri.

Her bir öğenin dönüştürülebilir özellikleri, referans dokümanlarında bu şekilde işaretlenir.

Dönüşümün kendisi, veri kaynakları içerebilen Kadran Biçimi ifade dilinde value özelliğinde belirtilir. target, üst öğede değiştirilecek özelliği belirtir.

Örneğin, bir Arc'ün açısını adım ilerleme durumunu yansıtacak şekilde değiştirmek için:

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

STEP_PERCENT değiştikçe endAngle yeniden hesaplanır ve Arc yeniden çizilir.

Bir Dönüşüm öğesi bir hedef değeri değiştirdiğinde, bu değişikliğin değerde ani bir değişiklik yerine bir süre boyunca animasyonlu olarak yapılması istenebilir. Bu, rahatsız edici olabilir. Aşağıdakileri yapmak için Animation öğesini kullanın:

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

İvmeölçeri kullanarak dönüştürme

Bir öğenin konumunu veya ölçeğini değiştirmek için Transform öğesini ACCELEROMETER_ANGLE_X gibi jiroskopik veri kaynaklarıyla kullanmak mümkün olsa da Kadran Biçimi, bunlar için ayrı bir öğe sağlar: Gyro.

Bu sayede, harekete dayalı dönüşümü aynı öğeye uygulanabilecek zamana dayalı dönüşüm gibi diğer dönüşümlerden ayırarak genel tabloyu basitleştirebilirsiniz.