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

Saat yüzünün bazı bölümlerinin görünümünü değiştirmek isteyebilirsiniz. Örneğin, günün saati veya ivmeölçer gibi giriş verisi kaynaklarına yanıt olarak konumu, boyutu ve görünürlüğü değiştirebilirsiniz.

Saat Kadranı Formatı'nda bu, Transform öğesi kullanılarak sağlanır. Tüm öğeler dönüştürülemez ancak temel dönüştürülebilir öğeler arasında Group, Part* öğeleri ve şekiller ile stiller gibi çizim öğeleri yer alır.

Dönüştürülebilir her öğenin özellikleri, referans belgelerinde bu şekilde işaretlenir.

Veri kaynaklarını içerebilen Watch Face Format ifade dilini kullanarak value özelliğinde dönüşümü belirtin. target özelliği, üst öğede değiştirilecek özelliği belirtir.

Örneğin, adım ilerlemesini yansıtmak için Arc simgesinin açısını değiştirmek istiyorsanız:

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

STEP_PERCENT değiştiğinde endAngle yeniden hesaplanır ve Arc yeniden çizilir.

Bir Dönüştür öğesi hedef değeri değiştirdiğinde, bu değişikliğin değerde anlık bir değişiklik yerine belirli bir süre boyunca animasyonlu olarak gerçekleşmesi tercih edilebilir. Anlık değişiklik, rahatsız edici olabilir. Bunu 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çer kullanılarak yapılan dönüşümler

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 Saat Yüzü Biçimi, bu amaç için ayrı bir öğe sağlar: Gyro.

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