Metinle çalışma

Dijital saatler için mümkün olduğunda DigitalClock kullanmayı hedeflemelisiniz. DigitalClock kullanılarak temsil edilemeyen diğer tüm metinler veya saatler için PartText, metne dayalı oluşturma kapsayıcısıdır.

Dairesel mi yoksa normal metin mi göstermek istediğinize bağlı olarak PartText, bir Text veya TextCircular öğesi içermelidir.

Yazı tipleri ve bitmap yazı tipleriyle çalışma

Özel yazı tipleri kullanmak, kadranınızın kendi tarzıyla öne çıkmasını sağlar.

Özel yazı tiplerini hem TimeText hem de PartText kapsayıcılarında kullanmanın iki yolu vardır.

  1. Font öğesinde özel bir yazı tipi family belirtin. res/font alanına yerleştirilmesi gereken çeşitli yaygın biçimler desteklenir.

    Örneğin, Google Fonts'taki Pacifico yazı tipini kullanıp öğeyi res/font/pacifico.ttf olarak yerleştirirseniz:

    <PartText x="0" y="100" width="450" height="250">
      <Text align="CENTER">
        <Font family="pacifico" size="96">Hello!</Font>
      </Text>
    </PartText>
    
  2. Alternatif olarak, res/drawable içinde bitmap resimleri sağlayan bir BitmapFont tanımlayın:

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

Karakter dizilerinin nasıl özel olarak işlenebilir olduğunu unutmayın. Örneğin, "12" değeri 1 ve 2'nin birleştirilmesiyle temsil edilecekse bu işlem Word öğesi kullanılarak yapılabilir.

Tanımlanmış yazı tipini kullanmak için:

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

Metin efektleri

Saat kadranı biçimi, OutGlow ve Shadow gibi uygulanabilecek çeşitli metin efektleri sunar. Bunları kullanmak için Font öğesinin alt öğeleri olarak uygulayın:

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

Şablonlarla çalışma

Statik metin yerine metninizi veri kaynaklarından veya ifadelerden oluşturmanız gerekebilir.

Template öğesi şunları yapmanıza olanak tanır:

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

Kaynaklarla çalışma

Statik metniniz bunun yerine res/values/strings.xml gibi bir kaynakta tanımlanmışsa aşağıdaki gibi referans verilebilir:

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

Bu, farklı kaynak niteliklerini kullanarak kadranınızı yerelleştirmenize de olanak tanır.

Tutma yeri aralığı

Boşluk ve metinle çalışırken bazı zorluklarla karşılaşabilirsiniz:

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

Bunun nedeni, XML'de boşluklar önemli olmasıdır. Bu durumu önlemek için Font içeriklerinizi bir CDATA öğesine sarmalayın:

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

Metni ortada hizalamaya çalışırken de bu sorunla karşılaşabilirsiniz:

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

Çok satırlı metin

Çok satırlı metin oluşturmak için Text öğesinde maxLines özelliğini kullanın:

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