Работа с текстом

Для цифровых часов следует по возможности использовать 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>