Как работать с текстом

Для цифровых часов рекомендуется использовать DigitalClock. Для любого другого текста или часов, которые нельзя представить с помощью DigitalClock, контейнером для текстовой отрисовки является PartText.

В зависимости от того, хотите ли вы показывать текст по кругу или обычный текст, элемент PartText должен содержать либо элемент Text, либо элемент TextCircular.

Как работать со шрифтами и растровыми шрифтами

Используя собственные шрифты, вы можете придать циферблату уникальный стиль.

Существует два способа использовать специальные шрифты в контейнерах TimeText и PartText.

  1. Укажите пользовательский шрифт 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>

  2. Или определите элемент 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>