تنظیمات کاربر را تعریف کنید

UserConfigurations به شما این امکان را می دهد که گزینه هایی را ایجاد کنید که کاربر بتواند از بین آنها یکی را انتخاب کند. می توانید ظاهر عناصر صفحه ساعت را بر اساس مقادیر انتخابی تنظیم کنید.

گزینه های پیکربندی کاربر می تواند به صورت زیر باشد:

  • BooleanConfiguration : معمولاً برای جاهایی استفاده می شود که کاربر ممکن است گزینه ای برای نشان دادن یا عدم نمایش یک عنصر یا انتخاب بین دو سبک داشته باشد.
  • ListConfiguration : طیف وسیعی از گزینه ها را در اختیار کاربر قرار می دهد. برای مثال، اگر صفحه ساعت چهار تصویر پس‌زمینه مختلف برای انتخاب داشته باشد
  • ColorConfiguration : تم های رنگی را تعریف می کند که کاربر می تواند تم مورد نظر خود را از بین آنها انتخاب کند.

گزینه های بولی

گزینه های Boolean شاید ساده ترین تنظیمات کاربر باشد. آنها را می توان به صورت زیر تعریف کرد:

<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
    

تم های رنگی

فرمت Watch Face به شما امکان می دهد تم های رنگی را از طریق ColorConfiguration تعریف کنید. کاربران می‌توانند تم مورد نظر خود را از ویرایشگر صفحه ساعت انتخاب کنند و رنگ‌های این تم می‌توانند در سراسر تعریف صفحه ساعت شما ظاهر شوند.

به عنوان مثال، برای تعریف یک تم با دو ورودی و سه رنگ در موضوع:

آرام

شهری

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 پشتیبانی می‌شوند.

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. تم رنگی روشن، برای انرژی دادن به شما و فعال کردن شما (ID: 0)
    2. ساعت بزرگ و پررنگ، به طوری که می توان آن را در حین کار مشاهده کرد (ID: 0)
    3. نمایش ضربان قلب روی صفحه ساعت برای مرجع
    4. شکاف عوارض که تعداد گام ها را نشان می دهد
  2. یک طعم پیچیده : این شامل موارد زیر است:
    1. تم رنگی تک رنگ، برای مطابقت با هر لباس (ID: 1)
    2. ساعت مینیمال، برای تناسب با هر محیطی (ID: 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