ウォッチフェイスの一部(位置、サイズ、表示設定など)の外観を変更することがあります。これは、時刻や加速度計などの入力データソースに応じて行うことがよくあります。
Watch Face Format では、Transform
要素を使用してこれを実現します。すべての要素を変換できるわけではありませんが、変換可能な主な要素には、Group
要素、Part*
要素、シェイプやスタイルなどの描画プリミティブが含まれます。
変換可能な各要素の属性は、リファレンス ドキュメントでそのようにマークされています。
変換自体は、データソースを含めることができるウォッチフェイス フォーマット式言語の value
属性で指定します。target
は、親要素で変更する属性を指定します。
たとえば、歩数の進捗状況を反映するように Arc
の角度を変更するには、次のようにします。
<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
<Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
<...>
</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>
加速度計を使用した変換
ACCELEROMETER_ANGLE_X
などのジャイロスコープ データソースで Transform
要素を使用して要素の位置やスケールを変更することは可能ですが、Watch Face Format には、これらの要素に Gyro
という個別の要素が用意されています。
これにより、全体像を簡素化し、同じ要素に適用される可能性のある時間ベースなどの他の変換から、動きベースの変換を分離できます。