使用文本

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

根据您要显示圆形文本还是普通文本,PartText 应包含 TextTextCircular 元素。

使用字体和位图字体

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

TimeTextPartText 容器中,使用自定义字体的两种方法。

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

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

    <PartText x="0" y="100" width="450" height="250">
      <Text align="CENTER">
        <Font family="pacifico" size="96">Hello!</Font>
      </Text>
    </PartText>
    
  2. 或者,在 res/drawable 中定义用于提供位图图片的 BitmapFont

    <WatchFace width="450" height="450" clipShape="CIRCLE">
    <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 元素来实现。

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

<TimeText ... format="hh:mm">
  <BitmapFont family="myhandwriting" size="48" color="#ff0000" />
</TimeText>

文字效果

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

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

使用模板

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

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

<PartText x="100" y="150" width="300" height="120" >
  <Text align="CENTER">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
      <Template>Day: %s<Parameter expression="[DAY_OF_WEEK_S]" /></Template>
    </Font>
  </Text>
</PartText>

使用资源

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

<PartText x="100" y="150" width="300" height="120" >
  <Text align="CENTER">
    <!-- greeting defined in res/values/strings.xml -->
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">greeting</Font>
  </Text>
</PartText>

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

手柄间距

在处理间距和文本时,可能会遇到一些问题:

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

<!-- Does not render in the right place because of whitespace -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
    greeting
</Font>

这是因为 XML 中空格很重要。为避免这种情况,请将 Font 内容封装在 CDATA 元素中:

<!-- Works correctly -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
  <![CDATA[greeting]]>
</Font>

尝试居中对齐文本时,您可以看到另一个示例:

<!-- Does not render as expected - leading spaces are a problem -->
<PartText x="100" y="150" width="250" height="120" >
  <Text align="CENTER">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
       Hello
    </Font>
  </Text>
</PartText>
<!-- Works correctly -->
<PartText x="100" y="150" width="250" height="120" >
    <Text align="CENTER">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
        <![CDATA[Hello]]>
    </Font>
    </Text>
</PartText>

多行文本

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

<PartText x="75" y="100" width="300" height="350" >
  <Text align="CENTER" maxLines="2">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
      <![CDATA[Hello Wear OS world]]>
    </Font>
  </Text>
</PartText>