Как динамически изменять внешний вид элемента

Вы можете изменить внешний вид элементов циферблата, например их положение, размер или видимость. Часто это делается в ответ на входные данные, например время суток или показания акселерометра.

В Watch Face Format это достигается с помощью элемента Transform. Не все элементы можно преобразовать, но основные трансформируемые элементы включают: элементы Group и Part* , а также примитивы рисования, такие как фигуры и стили.

Атрибуты каждого элемента, которые можно преобразовать, отмечены в справочной документации.

Укажите преобразование в атрибуте value, используя язык выражений Watch Face Format, который может включать источники данных. Атрибут target указывает, какой атрибут родительского элемента нужно изменить.

Например, чтобы изменить угол наклона Arc в зависимости от прогресса:

<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 меняется, endAngle пересчитывается, а Arc перерисовывается.

Если элемент Transform изменяет целевое значение, может быть желательно, чтобы это изменение было анимировано в течение определенного периода времени, а не происходило мгновенно, поскольку это может выглядеть неестественно. Используйте элемент Animation, чтобы:

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

Преобразования с использованием акселерометра

Хотя элемент Transform можно использовать с источниками гироскопических данных, например ACCELEROMETER_ANGLE_X, чтобы изменить положение или масштаб элемента, в формате Watch Face Format для этого предусмотрен отдельный элемент: Gyro.

Это позволяет упростить общую картину, отделив преобразование на основе движения от других преобразований, например на основе времени, которые могут быть применены к одному и тому же элементу.