Öğ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 saatine veya ivmeölçere 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ülebilen her öğenin özellikleri, referans belgelerinde bu şekilde işaretlenir.

Dönüşümün kendisi, veri kaynaklarını içerebilen Watch Face Format ifade dilindeki value özelliğinde belirtilir. target, ü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ürme öğesi hedef değeri değiştirdiğinde, bu değişikliğin değerde anında gerçekleşen ve rahatsız edici olabilecek bir değişiklik yerine belirli bir süre boyunca animasyonla gösterilmesi istenebilir. 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.