Praca z tekstem

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 TimeTextPartText.

  1. W elemencie Font określ niestandardową czcionkę family. Obsługiwane są różne popularne formaty, które muszą być umieszczone w res/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>
    
  2. Możesz też zdefiniować BitmapFont, który dostarcza obrazy bitmapowe w res/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. OutGlowShadow. 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>