Вы можете изменить внешний вид элементов циферблата, например их положение, размер или видимость. Часто это делается в ответ на входные данные, например время суток или показания акселерометра.
В 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.
Это позволяет упростить общую картину, отделив преобразование на основе движения от других преобразований, например на основе времени, которые могут быть применены к одному и тому же элементу.