对于数字时钟,您应尽可能使用 DigitalClock。对于无法使用 DigitalClock 表示的所有其他文本或时钟,PartText 是基于文本的渲染的容器。
根据您要显示环绕文字还是常规文字,PartText 应包含 Text 或 TextCircular 元素。
处理字体和位图字体
使用自定义字体可让表盘以自己的风格脱颖而出。
您可以通过两种方式使用自定义字体,这两种方式都适用于 TimeText 和 PartText 容器。
在
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>
或者,定义一个在
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>
文字效果
表盘格式提供了多种可应用的文字效果,例如 OutGlow 和 Shadow。如需使用这些元素,请将它们作为 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>