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