使用文本

对于数字时钟,您应尽可能使用 DigitalClock。对于无法使用 DigitalClock 表示的所有其他文本或时钟,PartText 是基于文本的渲染的容器。

根据您要显示环绕文字还是常规文字,PartText 应包含 TextTextCircular 元素。

处理字体和位图字体

使用自定义字体可让表盘以自己的风格脱颖而出。

您可以通过两种方式使用自定义字体,这两种方式都适用于 TimeTextPartText 容器。

  1. Font 元素中指定自定义字体 family。系统支持一系列常见格式,这些格式必须放置在 res/font

    例如,使用 Google Fonts 中的 Pacifico 字体,并将资源放置为 res/font/pacifico.ttf:

    <PartText x="0" y="50" width="450" height="250">
        <Text align="CENTER">
            <Font family="pacifico" size="96">Hello!</Font>
        </Text>
    </PartText>

  2. 或者,定义一个在 res/drawable 中提供位图图片的 BitmapFont

    <BitmapFonts>
        <BitmapFont name="myhandwriting">
            <Character name="1" resource="digit1" width="50" height="100" />
            <Character name="2" resource="digit2" width="50" height="100" />
            <Character name="3" resource="digit3" width="50" height="100" />
            <Character name="4" resource="digit4" width="50" height="100" />
            <!-- ... -->
            <!-- Treat "12" specially, instead of a 1 followed by a 2-->
            <Word name="12" resource="digit12" width="80" height="100" />
        </BitmapFont>
    </BitmapFonts>

请注意如何对字符序列进行特殊处理。例如,如果需要使用联接的 1 和 2 来表示“12”,则可以使用 Word 元素来实现。

如需使用已定义的字体,请执行以下操作:

<DigitalClock x="125" y="120" width="200" height="50">
    <TimeText x="0" y="0" width="200" height="50" format="hh:mm">
        <BitmapFont family="myhandwriting" size="48" color="#FF00FF"/>
    </TimeText>
</DigitalClock>

文字效果

表盘格式提供了多种可应用的文字效果,例如 OutGlowShadow。如需使用这些元素,请将它们作为 Font 元素的子元素应用:

<Font family="pacifico" size="96" color="#e2a0ff">
    <OutGlow color="#e8ffb7" radius="30">Hello!</OutGlow>
</Font>

使用模板

您可能需要根据数据源或表达式构建文本,而不是使用静态文本。

借助 Template 元素,您可以执行以下操作:

<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
    <Template>Day: %s<Parameter expression="[DAY_OF_WEEK_S]" /></Template>
</Font>

使用资源

如果您的静态文本是在资源(例如 res/values/strings.xml)中定义的,则可以按如下方式引用:

<!-- greeting defined in res/values/strings.xml -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">greeting</Font>

您还可以使用不同的资源限定符来本地化表盘。

把手间距

在 XML 中处理文字间距可能很棘手。文字周围的多余间距可能会导致格式设置问题,例如居中不正确,或阻止应用查找 Android 字符串资源。

为避免这些情况,请将 Font 内容封装在 CDATA 元素中:

<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
    <![CDATA[Hello]]>
</Font>

多行文本

如需创建多行文本,请在 Text 上使用 maxLines 属性:

<Text align="CENTER" maxLines="2">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
        <![CDATA[Hello Wear OS world]]>
    </Font>
</Text>