הגדרת הגדרות משתמשים

עם UserConfigurations ניתן ליצור אפשרויות שהמשתמש יכול לבחור מביניהן. אתם יכולים לשנות את המראה של רכיבים בתצוגת השעון בהתאם לערכים שתבחרו.

אפשרויות ההגדרה של המשתמש יכולות להיות:

  • BooleanConfiguration: בדרך כלל משמש במקרים שבהם למשתמש יש אפשרות להציג רכיב או לא, או לבחור בין שני סגנונות.
  • ListConfiguration: מספק למשתמש מגוון אפשרויות. לדוגמה, אם בתצוגת השעון יש ארבע אפשרויות שונות לתמונת רקע.
  • ColorConfiguration: הגדרה של ערכות צבעים, שהמשתמש יכול לבחור מתוכן את העיצוב המועדף עליו.

אפשרויות בוליאניות

אפשרויות בוליאניות הן אולי ההגדרות הפשוטות ביותר למשתמש. אפשר להגדיר אותן באופן הבא:

<!-- Under WatchFace element -->
<UserConfigurations>
    <!-- show_date and show_date_label defined in res/values/strings.xml -->
    <BooleanConfiguration id="show_date"
        displayName="show_date_label"
        screenReaderText="show_date_label"
        defaultValue="TRUE"
        />
</UserConfigurations>

אחר כך אפשר להשתמש באפשרויות בוליאניות בשתי דרכים:

  1. שימוש במבנה BooleanConfiguration בתוך תצוגת השעון Scene:

    <!-- Within the main Scene of the watch face -->
    <BooleanConfiguration id="show_date">
        <BooleanOption id="TRUE">
            <!-- ...Content when date required -->
        </BooleanOption>
        <BooleanOption id="FALSE">
            <!-- ...Content when date not required -->
        </BooleanOption>
    </BooleanConfiguration>

    הערה: אי אפשר להשתמש באפשרויות ההגדרה באופן היררכי.

  2. אפשר גם להשתמש באפשרות ההגדרה בביטויים:

        <Expressions>
            <Expression name="my_expression">
                <!-- Use show_date as part of a more complex evaluation -->
                <![CDATA[[CONFIGURATION.show_date] == "TRUE" && [HOUR_0_23] < 15]]
            </Expression>
        </Expressions>
        <Compare expression="my_expression">
            <!-- Content goes here -->
        </Compare>
    </Condition>

אפשרויות שמופיעות כרשימה

אפשרויות שמופיעות כרשימה פועלות באופן דומה מאוד לאפשרויות בוליאניות. לדוגמה, כדי לספק רשימה של תמונות רקע שהמשתמש יכול לבחור מתוכה:

<!-- Under WatchFace element -->
<UserConfigurations>
    <ListConfiguration id="background_image" displayName="background_image_label"
        icon="background_option_icon"
        screenReaderText="background_image_label" defaultValue="0">
        <ListOption id="0" displayName="background0_image_label"
            screenReaderText="background0_image_label" icon="background0_icon" />
        <ListOption id="1" displayName="background1_image_label"
            screenReaderText="background1_image_label" icon="background1_icon" />
        ...
    </ListConfiguration>
</UserConfigurations>

בדומה לאפשרויות בוליאניות, יש שוב שתי דרכים להשתמש בזה:

  1. שימוש ברכיב ListConfiguration ב-Scene:

    <!-- Within the main Scene of the watch face -->
    <ListConfiguration id="background_image">
        <ListOption id="0">
            <!-- ...Content for option 0 -->
        </ListOption>
        <ListOption id="1">
            <!-- ...Content for option 1 -->
        </ListOption>
    </ListConfiguration>

  2. אפשר גם להשתמש באפשרות ההגדרה בביטויים מורכבים יותר:

        <Expressions>
            <Expression name="background_zero_and_something_else">
                <!-- Use as part of a more complex evaluation -->
                <![CDATA[[CONFIGURATION.background_image] == "0" && [HOUR_0_23] < 15]]
            </Expression>
        </Expressions>
        <Compare expression="background_zero_and_something_else">
            <!-- Content goes here -->
        </Compare>
    </Condition>

ערכות צבעים

‫Watch Face Format מאפשר להגדיר ערכות צבעים באמצעות ColorConfiguration. המשתמשים יכולים לבחור את העיצוב הרצוי בכלי לעריכת תצוגת השעון, והצבעים מהעיצוב הזה יכולים להופיע בכל הגדרות תצוגת השעון.

לדוגמה, כדי להגדיר עיצוב עם שני רכיבים ושלושה צבעים, מגדירים את ColorConfiguration באופן הבא:

<!-- Under WatchFace element -->
<UserConfigurations>
    <ColorConfiguration id="myThemeColor" displayName="theme_label" defaultValue="0">
        <ColorOption id="0" displayName="relaxed_label" colors="#3083dc #f8ffe5 #7dde92" />
        <ColorOption id="1" displayName="urban_label" colors="#f4b393 #fc60a8 #7a28cb" />
    </ColorConfiguration>
</UserConfigurations>

אפשר להשתמש בהם כמקורות נתונים במקום בערכים הקסדצימליים של הצבע. שימו לב איך מציינים את ערך האינדקס כדי לבחור את הרכיב הראשון, השני או השלישי של העיצוב:

<AnalogClock x="0" y="0" width="450" height="450">
    <HourHand resource="hour" x="220" y="55" width="20" height="190"
        pivotX="0.5" pivotY="0.9210"
        tintColor="[CONFIGURATION.myThemeColor.0]"/>
    <MinuteHand resource="minute" x="222" y="30" width="16" height="220"
        pivotX="0.5" pivotY="0.9"
        tintColor="[CONFIGURATION.myThemeColor.1]"/>
    <SecondHand resource="second" x="226" y="20" width="8" height="245"
        pivotX="0.5" pivotY="0.8571"
        tintColor="[CONFIGURATION.myThemeColor.2]"/>
</AnalogClock>

במקרה הספציפי שבו לכל ColorOption מוגדר רק צבע אחד, אפשר גם להתייחס אליו כ-CONFIGURATION.myThemeColor, בלי האינדקס. לאחר מכן המשתמש יכול לבחור את ערכת הנושא הרצויה בכלי לעריכת תצוגת השעון.

גרסאות המוצרים

הערה: גרסאות המוצרים נתמכות בגרסה 2 ומעלה של Watch Face Format.

עם UserConfigurations אפשר לספק למשתמשים גמישות רבה, אבל ככל שמגדילים את מספר רכיבי ההגדרה, מספר השילובים יכול לגדול באופן משמעותי.

אתם יכולים להשתמש ב-Flavors כדי להגדיר הגדרות קבועות מראש ל-UserConfigurations שאתם רוצים להבליט.

אחר כך המשתמש יכול לבחור מתוך הגרסאות המוגדרות מראש באפליקציה הנלווית, או להמשיך לבחור כל ערך הגדרה בנפרד.

לדוגמה, נניח שיש תצוגת שעון שבה מגדירים שלוש הגדרות:

  1. הגדרה של ערכת צבעים, שמאפשרת למשתמש לבחור איזו ערכת צבעים להחיל. הגדרתם שני עיצובים, אחד צבעוני ואחד מונוכרומטי.
  2. רשימה של רקעים. הגדרתם שתי אפשרויות שהמשתמש יכול לבחור מביניהן.
  3. אפשרות בחירה אם להציג את הדופק של המשתמש בתצוגת השעון.

בנוסף, יש לכם ComplicationSlot בתצוגת השעון.

אתם מחליטים שיש שני Flavors שאתם רוצים להדגיש למשתמש. יש עוד הרבה שילובים אפשריים של כל ההגדרות האלה, אבל אלה השילובים שלדעתכם הכי מתאימים:

  1. גרסה ספורטיבית: הגרסה הזאת תכלול את הדברים הבאים:
    1. ערכת הצבעים הבהירה, כדי לתת לכם אנרגיה ולעודד פעילות (מזהה: 0)
    2. תמונת הרקע הראשונה (מזהה: 0)
    3. דופק שמופיע בתצוגת השעון
    4. משבצת שמציגה את מספר הצעדים
  2. גרסה מתוחכמת: הגרסה הזאת תכלול את הדברים הבאים:
    1. ערכת הצבעים המונוכרומטית, שתתאים לכל סגנון (מזהה: 1)
    2. תמונת הרקע השנייה (מזהה: 1)
    3. ללא דופק בתצוגת השעון
    4. המשבצת שמציגה את מספר הצעדים לא מופעלת

כדי להשתמש בגרסאות המוצרים, צריך להפעיל אותם ב-watch_face_info.xml. לכן, צריך להגדיר את הרכיב FlavorsSupported בקובץ watch_face_info.xml עם הערך value="true".

כל גרסה מוגדרת ב-UserConfigurations באופן הבא:

<!-- Under UserConfigurations -->
<Flavors defaultValue="sporty_flavor">
    <Flavor id="sporty_flavor"
        displayName="flavor_sporty_label" screenReaderText="flavor_sporty_label">
        <Configuration id="theme_color" optionId="0"/>
        <Configuration id="background_image" optionId="0"/>
        <Configuration id="show_hr" optionId="TRUE"/>
        <ComplicationSlot slotId="0">
            <DefaultProviderPolicy
                defaultSystemProvider="STEP_COUNT"
                defaultSystemProviderType="SHORT_TEXT"/>
        </ComplicationSlot>
    </Flavor>
    <Flavor id="sophisticated_flavor"
        displayName="flavor_sophisticated_label" screenReaderText="flavor_sophisticated_label">
        <Configuration id="theme_color" optionId="1"/>
        <Configuration id="background_image" optionId="1"/>
        <Configuration id="show_hr" optionId="FALSE"/>
        <ComplicationSlot slotId="0">
            <!--
              Type here is set to empty to demonstrate how to hide a complication
              slot in Flavors.
            -->
            <DefaultProviderPolicy
                defaultSystemProvider="SUNRISE_SUNSET"
                defaultSystemProviderType="EMPTY"/>
        </ComplicationSlot>
    </Flavor>
</Flavors>