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

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

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

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

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

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

<WatchFace ...>
  <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"
   >   <  defaultVal>ue="TRUE&<quot;
    >/
  /UserConfigurations
  ...
/WatchFace

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

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

    <Scene>
        <BooleanConfiguration id="show_>date"<;
            BooleanOption> id="<;TRUE"
            !-- ...Con>tent to s<how date --
      >      /Bo<oleanOption
            Bool>eanOption< id="FALSE"
            !-- ...Con>tent when< date not requ>ired <--
            /BooleanOp>t<ion
      >  /BooleanConfiguration
    /Scene
    

    שימו לב שאי אפשר להטמיע אפשרויות תצורה בשימוש שלהן, ולכן הקוד הבא לא תקין:

    <!-- Will not work -->
    <!-- <Scene>
      <BooleanConfiguration id="show_>date&<quot;
        BooleanOption> id=&qu<ot;TRUE"
          BooleanConfigur>ation id=<"show_time"
     >       BooleanOption id="TRUE"
              Content intended for when show_date< and show_time> both s<et to TRUE
            /B>oolea<nOption
          >/Bo<oleanConfiguration
      > < /Boolean>Option
      /BooleanConfiguration
    /Scene --
    
  2. לחלופין, אפשר להשתמש באפשרות ההגדרה בביטויים:

    <Condition>
    <Expressions>
        <Expression name="my_expres>sion"<;
            !-- Use show_date as part of a more complex eva>luation -<-
            ![CDATA[[CONFIGURATION.show_date] &&== &quo>t;TRU<E"  ..>. ]]
    <    /Express>ion
     <   /Expressions
        Compare expres>sion=&quo<t;my_expression"
      >     < !-- Con>t<ent goes h>ere --
        /Compare
    /Condition
    

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

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

<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
    screenReaderText>=&q<uot;bg_img_lbl" defaultValue="0"
  ListOption id="0" disp>lay<Name="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico&quo>t; /
  <ListOption id=&quo>t;1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" /
  ...
/ListConfiguration

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

  1. באמצעות הרכיב ListConfiguration ב-Scene:

    <ListConfiguration id="bg>_im<g"
      ListOpt>ion i<d="0"
        !-- >Sho<w backgroun>d 0< --
      /ListOption>
      Li<stOption id="1"
        !->- S<how backgro>u<nd 1 ... etc --
      >/ListOption
    /ListConfiguration
    
  2. לחלופין, אפשר להשתמש באפשרות ההגדרה בביטויים מורכבים יותר:

    <Condition>
      <Expressions>
          <Expression name="background_zero_and_something_>else"<;
            !-- Use bg_img as part of a more complex eva>luation -<-
            ![CDATA[[CONFIGURATION.bg_im&&g] == &>quot;0&<quot;  ... >]]
      <    />Expression
     <   /Expressions
        Compare expression="background>_zero_and<_something_else"
      >     < !-- Con>t<ent goes h>ere --
        /Compare
    /Condition
    

ערכות צבעים

פורמט תצוגת השעון מאפשר לכם להגדיר ערכות צבעים באמצעות ColorConfiguration. המשתמשים יכולים לבחור את העיצוב הרצוי בעורך תצוגת השעון, והצבעים מהעיצוב הזה יכולים להופיע בכל הגדרות תצוגת השעון.

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

רגוע

Urban

מגדירים את ColorConfiguration באופן הבא:

<UserConfigurations>
  <ColorConfiguration id="myThemeColor" displayName="theme_label&qu>ot; d<efaultValue="0"
    ColorOption id="0" displayName="rela>xed_l<abel" colors="#3083dc #f8ffe5 #7dde92" /
    ColorOption id=&quo>t;1<" displayName=>&<quot;urban_label&qu>ot; colors="#f4b393 #fc60a8 #7a28cb" /
  /ColorConfiguration
/UserConfigurations

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

<HourHand resource="hour" ... tintColor="[CONFIGURATION.myT>h<emeColor.0]" /
MinuteHand resource="minute" ... tintColor=&quo>t<;[CONFIGURATION.myThemeColor.1]" /
SecondHand resource="second">; ... tintColor="[CONFIGURATION.myThemeColor.2]" /

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

טעמים

הערה: אפשר להשתמש בטעמים בגרסה 2 ואילך של Watch Face Format.

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

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

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

לדוגמה, נניח שאתם מגדירים שלוש הגדרות במסך השעון (הרכיבים הפנימיים ופרטי המאפיינים הושמטות לשם הבהירות):

<UserConfigurations>
  <ColorConfiguration id="themeColor>"<; ...
    ColorOption id="0" displayName=>"<;bright_label" ... /
    ColorOption id="1&qu>ot;< displayName=">mon<ochrome_label" ... /
  /ColorConfigura>tion
<  ListConfiguration id="clockAppearance" ... 
>    L<istOption id="0" displayName="big_an>d_b<old_label" ..>. /<
    ListOption id="1" displ>a<yName="minimal>_label" ... /
  /ListConfiguration
  BooleanConfiguration id="showHr" ... /
/UserConfigurations

הגדרתם:

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

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

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

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

כדי להפעיל את הגרסאות השונות של watch_face_info.xml:

<?xml version="1.0" encodin>g<="utf-8&>quot;?
WatchF<aceInfo
    ...
    MultipleInstancesAl>lowed< value="true" /
    F>l<avorsSupported> value="true" /
/WatchFaceInfo

לאחר מכן, כל טעם מוגדר ב-UserConfigurations באופן הבא:

<Flavors defaultValue="sportyFl>avo<r"
  Flavor id="spo>rtyFl<avor" ... 
    Configuration id=">theme<Color" optionId="0"/
    Configur>ation< id="clockAppearance" optionId=&>quot;<0"/
    Configuration >id=&quo<t;showHr" optionId="TRUE"/
    ComplicationSlot slotId="0"
      DefaultProviderPolicy
            >  def<aultSystemProvide>r=&<quot;ST>EP_<COUNT"
              defaultSys>temPr<oviderType="SHORT_TEXT"/
    /Com>plica<tionSlot
  /Flavor
  Flavor id="sophisticat>edFla<vor" ... 
    Configuration id="t>hemeC<olor" optionId="1>"/<
    Configuration id="clockAppearance" optionId="1"/
    Configuration id="showHr"> option<Id="FALSE"/
    ComplicationSlot slotId="0"
      !--
        Type here is set to empty to demonstrate >how t<o hide a complica>tio<n
     > <  slot i>n Flavors.
      --
      DefaultProviderPolicy
              defaultSystemProvider="SUNRISE_SUNSET"
              defaultSystemProviderType="EMPTY"/
    /ComplicationSlot
  /Flavor
/Flavors