W przypadku zegarów cyfrowych w miarę możliwości używaj DigitalClock
. W przypadku innych tekstów lub zegarów, których nie można przedstawić za pomocą DigitalClock
, PartText
jest kontenerem do renderowania tekstowego.
W zależności od tego, czy chcesz wyświetlać tekst okrągły, czy zwykły, element PartText
powinien zawierać albo element Text
, albo element TextCircular
.
Praca z czcionkami i czcionkami bitmapowymi
Dzięki niestandardowym czcionkom tarcza zegarka wyróżnia się własnym stylem.
Można używać czcionek niestandardowych na 2 sposoby: w kontenerach TimeText
i PartText
.
W elemencie
Font
określ niestandardową czcionkęfamily
. Obsługiwane są różne popularne formaty, które muszą być umieszczone wres/font
Na przykład czcionka Pacifico z Google Fonts i umieszczony zasób res/font/pacifico.ttf:
<PartText x="0" y="100" width="450" height="250"> <Text align="CENTER"> <Font family="pacifico" size="96">Hello!</Font> </Text> </PartText>
Możesz też zdefiniować
BitmapFont
, który dostarcza obrazy bitmapowe wres/drawable
:<WatchFace width="450" height="450" clipShape="CIRCLE"> <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> <!-- ... -->
Zwróć uwagę, jak sekwencja znaków może być traktowana w sposób szczególny. Jeśli na przykład chcesz, aby wartość „12” była reprezentowana przez złączone wartości 1 i 2, możesz to osiągnąć za pomocą elementu Word
.
Aby użyć zdefiniowanej czcionki:
<TimeText ... format="hh:mm">
<BitmapFont family="myhandwriting" size="48" color="#ff0000" />
</TimeText>
Efekty tekstowe
Format tarczy zegarka udostępnia kilka efektów tekstu, które można zastosować, np. OutGlow
i Shadow
. Aby ich użyć, zastosuj je jako podelementy elementu Font
:
<Font family="pacifico" size="96" color="#e2a0ff">
<OutGlow color="#e8ffb7" radius="30">Hello!</OutGlow>
</Font>
Praca z szablonami
Zamiast tekstu stałego może być konieczne utworzenie tekstu na podstawie źródeł danych lub wyrażeń.
Element Template
umożliwia:
<PartText x="100" y="150" width="300" height="120" >
<Text align="CENTER">
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
<Template>Day: %s<Parameter expression="[DAY_OF_WEEK_S]" /></Template>
</Font>
</Text>
</PartText>
Praca z zasobami
Jeśli tekst statyczny jest zdefiniowany w zasobie, np. w tagu res/values/strings.xml
, można się do niego odwoływać w ten sposób:
<PartText x="100" y="150" width="300" height="120" >
<Text align="CENTER">
<!-- greeting defined in res/values/strings.xml -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">greeting</Font>
</Text>
</PartText>
Umożliwia to również zlokalizowanie tarczy zegarka za pomocą różnych kwalifikatorów zasobów.
Odstępy między uchwytami
Praca z odstępami i tekstem może nastręczać pewnych problemów:
<!-- greeting defined in res/values/strings.xml -->
<!-- Works correctly: -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">greeting</Font>
<!-- Does not render in the right place because of whitespace -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
greeting
</Font>
Dzieje się tak, ponieważ w pliku XML ma znaczenie odstęp. Aby tego uniknąć, owiń zawartość
Font
elementem CDATA
:
<!-- Works correctly -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
<![CDATA[greeting]]>
</Font>
Inny przykład: próba wyjustowania tekstu do środka:
<!-- Does not render as expected - leading spaces are a problem -->
<PartText x="100" y="150" width="250" height="120" >
<Text align="CENTER">
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
Hello
</Font>
</Text>
</PartText>
<!-- Works correctly -->
<PartText x="100" y="150" width="250" height="120" >
<Text align="CENTER">
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
<![CDATA[Hello]]>
</Font>
</Text>
</PartText>
Tekst wielowierszowy
Aby utworzyć tekst wielowierszowy, użyj atrybutu maxLines
w elemencie Text
:
<PartText x="75" y="100" width="300" height="350" >
<Text align="CENTER" maxLines="2">
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
<![CDATA[Hello Wear OS world]]>
</Font>
</Text>
</PartText>