Для цифровых часов рекомендуется использовать DigitalClock. Для любого другого текста или часов, которые нельзя представить с помощью DigitalClock, контейнером для текстовой отрисовки является PartText.
В зависимости от того, хотите ли вы показывать текст по кругу или обычный текст, элемент PartText должен содержать либо элемент Text, либо элемент TextCircular.
Как работать со шрифтами и растровыми шрифтами
Используя собственные шрифты, вы можете придать циферблату уникальный стиль.
Существует два способа использовать специальные шрифты в контейнерах TimeText и PartText.
Укажите пользовательский шрифт
familyв элементеFont. Поддерживается множество распространенных форматов, которые должны быть указаны вres/fontНапример, если вы используете шрифт Pacifico из Google Fonts и размещаете ресурс как 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>
Или определите элемент
BitmapFont, который будет предоставлять битовые изображения в элементеres/drawable:<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>
Обратите внимание, как можно обрабатывать последовательности символов. Например, если число 12 нужно представить как объединенные цифры 1 и 2, это можно сделать с помощью элемента 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>
Текст с эффектами
Watch Face Format поддерживает несколько текстовых эффектов, например 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>
Многострочный текст
Чтобы создать многострочный текст, используйте атрибут maxLines в элементе Text:
<Text align="CENTER" maxLines="2"> <Font family="pacifico" size="60" weight="BOLD" color="#ffffff"> <![CDATA[Hello Wear OS world]]> </Font> </Text>