你可能想變更錶面部分內容的外觀,例如變更位置、大小、顯示設定,通常是根據輸入資料來源 (例如時間或加速度計) 變更。
在錶面格式中,這項功能是透過 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" /> <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) 變更元素的位置或比例,但錶面格式提供專用的元素:Gyro。
這樣一來,您就能簡化整體畫面,將以動作為基礎的轉換與其他轉換 (例如以時間為基礎的轉換) 分開,後者可能會套用至相同元素。