Mit Text arbeiten

Bei digitalen Uhren sollten Sie nach Möglichkeit DigitalClock verwenden. Für alle anderen Texte oder Uhren, die nicht mit DigitalClock dargestellt werden können, ist PartText der Container für die textbasierte Darstellung.

Je nachdem, ob Sie kreisförmigen oder regulären Text anzeigen möchten, sollte das PartText-Element entweder ein Text- oder ein TextCircular-Element enthalten.

Mit Schriftarten und Bitmap-Schriftarten arbeiten

Mit benutzerdefinierten Schriftarten können Sie Ihrem Zifferblatt einen ganz eigenen Stil verleihen.

Es gibt zwei Möglichkeiten, benutzerdefinierte Schriftarten zu verwenden, sowohl in TimeText- als auch in PartText-Containern.

  1. Geben Sie im Font-Element eine benutzerdefinierte Schriftart family an. Eine Reihe gängiger Formate werden unterstützt und müssen in res/font platziert werden.

    Beispiel: Sie verwenden die Schriftart „Pacifico“ von Google Fonts und platzieren das Asset als „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. Alternativ können Sie einen BitmapFont definieren, der Bitmap-Bilder in res/drawable bereitstellt:

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

Beachten Sie, wie Zeichenfolgen speziell behandelt werden können. Wenn beispielsweise „12“ mit einer verbundenen 1 und 2 dargestellt werden soll, kann dies mit einem Word-Element erreicht werden.

So verwenden Sie die definierte Schriftart:

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

Texteffekte

Das Zifferblattformat bietet verschiedene Texteffekte, die angewendet werden können, z. B. OutGlow und Shadow. Wenden Sie sie als Unterelemente des Font-Elements an:

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

Mit Vorlagen arbeiten

Statt statischen Text zu verwenden, müssen Sie den Text möglicherweise aus Datenquellen oder Ausdrücken erstellen.

Mit dem Template-Element können Sie Folgendes tun:

<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
    <Template>Day: %s<Parameter expression="[DAY_OF_WEEK_S]" /></Template>
</Font>

Mit Ressourcen arbeiten

Wenn Ihr statischer Text stattdessen in einer Ressource wie res/values/strings.xml definiert ist, kann er so referenziert werden:

<!-- greeting defined in res/values/strings.xml -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">greeting</Font>

So können Sie Ihr Zifferblatt auch mit verschiedenen Ressourcenqualifizierern lokalisieren.

Griffabstand

Die Arbeit mit Textabständen in XML kann eine Herausforderung sein. Zusätzliche Leerzeichen um Text können zu Formatierungsproblemen führen, z. B. zu einer falschen Zentrierung, oder verhindern, dass Ihre App Android-String-Ressourcen findet.

Um diese Situationen zu vermeiden, schließen Sie den Inhalt von Font in ein CDATA-Element ein:

<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
    <![CDATA[Hello]]>
</Font>

Mehrzeiliger Text

Um mehrzeiligen Text zu erstellen, verwenden Sie das Attribut maxLines für Text:

<Text align="CENTER" maxLines="2">
    <Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
        <![CDATA[Hello Wear OS world]]>
    </Font>
</Text>