透過小工具提供實用資料

小工具是實體和智慧手錶錶面的功能,可顯示額外資訊。使用者通常會選取要在小工具中顯示的資訊。

小工具通常有以下幾種形狀:

  1. 矩形
  2. 圓形
  3. 錶面邊緣的弧形
  4. 背景,涵蓋整個錶面

在 Wear OS 中,複雜功能系統可分為兩部分:

  1. 小工具的資料來源
  2. 小工具算繪

舉例來說,健康與健身應用程式可能會實作「每日步數」複雜功能資料來源。這可能會由 WFF 錶面算繪。

小工具中的資料來源

小工具資料來源只會指定要算繪的資料和小工具類型。資料來源不會決定資料在錶面上的呈現方式。

舉例來說,健康與健身的「每日步數」複雜功能資料來源可能會產生下列資料,指出使用者今天已走了 2400 步,目標是 10000 步:

請注意,這項資料中沒有任何資訊指出應如何算繪。

錶面會指定可顯示的小工具類型。這會決定使用者可選取的資料來源。

以「每日步數」為例,您可以在錶面定義中決定如何算繪 ValueTargetValue:以文字形式還是進度指標?這由錶面設計師決定。

定義小工具

錶面可顯示小工具,讓使用者一目瞭然各種資訊,並根據需求自訂,因此這項功能對使用者來說非常實用。

決定錶面要支援的小工具數量、形狀和位置,以及支援的資料類型。

錶面上每個小工具空間都定義為 ComplicationSlot,其中定義了小工具的顯示邊界區域:

<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
    x="100" y="100" width="100" height="100">
    <BoundingOval x="0"  y="0" width="100" height="100" />
    <Complication type="SHORT_TEXT">
        <!-- Complication content for rendering SHORT_TEXT data goes here -->
    </Complication>
    <Complication type="SMALL_IMAGE">
        <!-- Complication content for rendering SMALL_IMAGE data goes here -->
    </Complication>
</ComplicationSlot>

其他邊界形狀 (例如矩形和橢圓) 也可套用類似做法。

設定小工具類型和預設值

小工具系統提供多種不同類型,讓錶面能表達可在畫面上呈現的資料類型。舉例來說,如先前所示,Arc 複雜功能不適合 SMALL_IMAGE 等以圖片為基礎的複雜功能資料類型,但可能很適合 RANGED_VALUE 等數值資料。

ComplicationSlot 宣告中,將 supportedTypes 設為可在這個版位中顯示的類型,並以空格分隔。

您也必須為 ComplicationSlot 設定預設來源,除非您允許 EMPTY 類型,在這種情況下,設定預設來源是選用項目:

<ComplicationSlot slotId="2" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
    x="250" y="100" width="100" height="100">
    <DefaultProviderPolicy
        defaultSystemProvider="STEP_COUNT"
        defaultSystemProviderType="SHORT_TEXT" />
    <!-- ... -->
</ComplicationSlot>

除了必須指定系統供應商,您也可以選擇指定非系統供應商,例如預設使用的第三方供應商 (如果已安裝)。

算繪小工具資料

定義 ComplicationSlot、界線和包含的 Complication 元素後,請使用標準 WFF 元件 (例如 PartDraw, PartImagePartText) 顯示複雜功能資料。

Complication 資料中的元素可存取特殊資料來源:COMPLICATION,這個來源提供複雜功能資料來源設定的各種資料屬性。

舉例來說,SMALL_IMAGE 錶面小工具可以設定 COMPLICATION.SMALL_IMAGECOMPLICATION.SMALL_IMAGE_AMBIENT 值。這些項目可用於 Image 元素,取代資源:

<Complication type="SMALL_IMAGE">
    <PartImage x="0" y="0" width="100" height="100">
        <Image resource="[COMPLICATION.SMALL_IMAGE]" />
    </PartImage>
</Complication>

每種不同的複雜功能類型都有不同的可用屬性集,可供設定;如需各項屬性的完整清單,請參閱 Complication 參考資料。這個範例會顯示 SHORT_TEXT 複雜功能中的文字:

<Complication type="SHORT_TEXT">
    <PartText x="0" y="0" width="100" height="100">
        <Text>
            <Font size="32">
                <Template>
                    <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
                </Template>
            </Font>
        </Text>
    </PartText>
</Complication>

在顯示複雜功能時盡量提高實用性

在錶面新增 ComplicationSlots 時,可能會遇到下列問題:

  1. 小工具資料類型繁多,不同應用程式可能提供其中一項或多項功能。
  2. 每個小工具資料類型除了有必要屬性,也有許多選用屬性。確認系統會根據可用屬性,並考量不同組合,產生最實用的算繪結果。

如要解決這些問題,可以採取以下策略:

  1. 每個時段支援多種小工具類型。舉例來說,小工具資料來源相當廣泛支援 SHORT_TEXT,因此支援多種不同類型 (例如小型圓形小工具的 SHORT_TEXT RANGED_VALUE) 可提高相容性。
  2. 在錶面上提供不同類型的小工具。舉例來說,您可以在邊緣位置的 Arc 小工具上支援 RANGED_VALUEGOAL_PROGRESS,在錶面主體的圓形小工具上支援 SHORT_TEXTSMALL_IMAGE
  3. 檢查每種資料類型的選用元素。舉例來說,SHORT_TEXT 可選擇性支援標題屬性和圖片。可用的資料可能包含圖片或標題,因此顯示方式可能有所不同。