בשעונים דיגיטליים, מומלץ להשתמש ב-DigitalClock
כשהדבר אפשרי. לכל טקסט או שעון אחרים שלא ניתן לייצג באמצעות DigitalClock
, PartText
הוא המאגר לעיבוד מבוסס-טקסט.
בהתאם לרצון להציג טקסט עגול או רגיל, הרכיב PartText
צריך להכיל אחד מהרכיבים Text
או TextCircular
.
עבודה עם גופנים וגופנים בפורמט bitmap
שימוש בגופנים מותאמים אישית מאפשר לתצוגת השעון לבלוט בסגנון משלה.
יש שתי דרכים להשתמש בגופנים מותאמים אישית, גם בקונטיינרים מסוג TimeText
וגם בקונטיינרים מסוג PartText
.
מציינים גופן מותאם אישית
family
ברכיבFont
. יש תמיכה במגוון פורמטים נפוצים, שצריך להוסיף לקובץres/font
לדוגמה, משתמשים בגופן Pacifico מ-Google Fonts וממקמים את הנכס בתור 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>
לחלופין, אפשר להגדיר
BitmapFont
שמספק קובצי bitmap ב-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> <!-- ... -->
שימו לב איך אפשר להתייחס באופן מיוחד לרצפים של תווים. לדוגמה, אם רוצים לייצג את המספר '12' באמצעות 1 ו-2 מחוברים, אפשר לעשות זאת באמצעות רכיב Word
.
כדי להשתמש בגופן שהוגדר:
<TimeText ... format="hh:mm">
<BitmapFont family="myhandwriting" size="48" color="#ff0000" />
</TimeText>
אפקטים של טקסט
ב-Watch Face Format יש כמה אפקטים של טקסט שאפשר להחיל, כמו OutGlow
ו-Shadow
. כדי להשתמש בהם, צריך להחיל אותם כרכיבי משנה של הרכיב Font
:
<Font family="pacifico" size="96" color="#e2a0ff">
<OutGlow color="#e8ffb7" radius="30">Hello!</OutGlow>
</Font>
עבודה עם תבניות
במקום טקסט סטטי, יכול להיות שתצטרכו ליצור את הטקסט ממקורות נתונים או מביטויים.
האלמנט Template
מאפשר לכם:
<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>
עבודה עם משאבים
אם הטקסט הסטטי מוגדר במשאב, למשל ב-res/values/strings.xml
, אפשר להפנות אליו באופן הבא:
<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>
כך תוכלו גם להתאים את תצוגת השעון לשוק המקומי באמצעות מסנני משאבים שונים.
ריווח בין כינויים
יכול להיות שתתקלו בבעיות מסוימות בעבודה עם רווחים וטקסט:
<!-- 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>
הסיבה לכך היא שהרווחים חשובים ב-XML. כדי למנוע את המצב הזה, צריך לעטוף את התוכן של Font
ברכיב CDATA
:
<!-- Works correctly -->
<Font family="pacifico" size="60" weight="BOLD" color="#ffffff">
<![CDATA[greeting]]>
</Font>
דוגמה נוספת היא כשמנסים ליישר טקסט במרכז:
<!-- 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>
טקסט בכמה שורות
כדי ליצור טקסט עם כמה שורות, משתמשים במאפיין maxLines
ב-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>