For digital clocks, you should aim to use `DigitalClock` where possible. For all
other text or clocks that cannot be represented using `DigitalClock`,
`PartText` is the container for text-based rendering.

Depending on whether you want to show circular or regular text, the `PartText`
should contain *either* a `Text` or a `TextCircular` element.

### Work with fonts and bitmap fonts

Using custom fonts allows your watch face to stand out with its own style.

There are two ways to use custom fonts, both within `TimeText` and `PartText`
containers.

1. Specify a custom font `family` in the `Font` element. [A range of common
   formats](https://developer.android.com/training/wearables/wff/group/part/text/font?version=1) are
   supported, which must be placed in `res/font`

   For example, using the Pacifico font from Google Fonts, and placing the
   asset as 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. Alternatively, define a `BitmapFont` supplying bitmap images in
   `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>
       <!-- ... -->

Note how sequences of characters can be given a special treatment. For example,
if "12" was to be represented with a joined 1 and 2, this could be achieved
using a `Word` element.

To use the defined font:  

    <TimeText ... format="hh:mm">
      <BitmapFont family="myhandwriting" size="48" color="#ff0000" />
    </TimeText>

### Text effects

Watch Face Format provides several text effects which can be applied, such as
[`OutGlow`](https://developer.android.com/training/wearables/wff/group/part/text/decoration/out-glow) and [`Shadow`](https://developer.android.com/training/wearables/wff/group/part/text/decoration/shadow). To use these, apply them as subelements of the
`Font` element:  

    <Font family="pacifico" size="96" color="#e2a0ff">
      <OutGlow color="#e8ffb7" radius="30">Hello!</OutGlow>
    </Font>

### Work with templates

Instead of static text, you may need to construct your text from data sources or
expressions.

The `Template` element lets you do this:  

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

### Work with resources

If your static text is instead defined in a resource, such as in
`res/values/strings.xml`, then it can be referenced as follows:  

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

This also lets you localize your watch face using different [resource
qualifiers](https://developer.android.com/guide/topics/resources/providing-resources#AlternativeResources).

### Handle spacing

There can be some challenges with working with spacing and text:  

    <!-- 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>

This is because the spacing matters in XML. To avoid this situation, wrap your
`Font` contents in a `CDATA` element:  

    <!-- Works correctly -->
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
      <![CDATA[greeting]]>
    </Font>

Another example can be seen when trying to center justify text:  

    <!-- 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>

### Multiline text

To create multiline text, use the `maxLines` attribute on `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>