กําหนดการกําหนดค่าผู้ใช้

UserConfigurations ช่วยให้คุณสร้างตัวเลือกที่ผู้ใช้เลือกได้ คุณสามารถปรับลักษณะที่ปรากฏขององค์ประกอบหน้าปัดตามค่าที่เลือกได้

ตัวเลือกการกำหนดค่าผู้ใช้มีดังนี้

  • BooleanConfiguration: มักใช้ในกรณีที่ผู้ใช้อาจมีตัวเลือกในการแสดงองค์ประกอบหรือไม่ หรือเลือกระหว่าง 2 รูปแบบ
  • ListConfiguration: มีตัวเลือกมากมายให้ผู้ใช้ ตัวอย่างเช่น หากหน้าปัดมีภาพพื้นหลัง 4 แบบให้เลือก
  • 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"
        defaultValue="TRUE"
    />
  </UserConfigurations>
  ...
</WatchFace>

จากนั้นจะใช้ตัวเลือกบูลีนได้ 2 วิธีดังนี้

  1. การใช้โครงสร้าง BooleanConfiguration ภายในหน้าปัด Scene

    <Scene>
        <BooleanConfiguration id="show_date">
            <BooleanOption id="TRUE">
            <!-- ...Content to show date -->
            </BooleanOption>
            <BooleanOption id="FALSE">
            <!-- ...Content when date not required -->
            </BooleanOption>
        </BooleanConfiguration>
    </Scene>
    

    โปรดทราบว่าตัวเลือกการกําหนดค่าไม่สามารถฝังอยู่ในการใช้งานได้ ดังนั้น รูปแบบต่อไปนี้จึงไม่ถูกต้อง

    <!-- Will not work -->
    <!-- <Scene>
      <BooleanConfiguration id="show_date">
        <BooleanOption id="TRUE">
          <BooleanConfiguration id="show_time">
            <BooleanOption id="TRUE">
              Content intended for when show_date and show_time both set to TRUE
            </BooleanOption>
          </BooleanConfiguration>
        </BooleanOption>
      </BooleanConfiguration>
    </Scene> -->
    
  2. หรือจะใช้ตัวเลือกการกําหนดค่าในนิพจน์ก็ได้

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

ตัวเลือกรายการ

ตัวเลือกรายการทํางานในลักษณะที่คล้ายกับตัวเลือกบูลีนมาก ตัวอย่างเช่น หากต้องการแสดงรายการภาพพื้นหลังให้ผู้ใช้เลือก ให้ทำดังนี้

<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
    screenReaderText="bg_img_lbl" defaultValue="0">
  <ListOption id="0" displayName="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico" />
  <ListOption id="1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" />
  ...
</ListConfiguration>

การใช้ตัวเลือกนี้ก็มี 2 วิธีเช่นเดียวกับตัวเลือกบูลีน ดังนี้

  1. การใช้องค์ประกอบ ListConfiguration ใน Scene

    <ListConfiguration id="bg_img">
      <ListOption id="0">
        <!-- Show background 0 -->
      </ListOption>
      <ListOption id="1">
        <!-- Show background 1 ... etc -->
      </ListOption>
    </ListConfiguration>
    
  2. หรือจะใช้ตัวเลือกการกําหนดค่าในนิพจน์ที่ซับซ้อนมากขึ้นก็ได้ ดังนี้

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

ชุดรูปแบบสี

รูปแบบหน้าปัดช่วยให้คุณกำหนดธีมสีผ่าน ColorConfiguration ได้ ผู้ใช้สามารถเลือกธีมที่ต้องการจากเครื่องมือแก้ไขหน้าปัด และสีจากธีมนี้จะปรากฏในคำจำกัดความของหน้าปัด

เช่น หากต้องการกำหนดธีมที่มี 2 รายการและ 3 สีในธีม ให้ทำดังนี้

ผ่อนคลาย

Urban

กําหนด ColorConfiguration ดังนี้

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

จากนั้นจึงนำไปใช้เป็นแหล่งข้อมูลแทนค่าสีฐานสิบหก โปรดดูวิธีระบุค่าดัชนีเพื่อเลือกองค์ประกอบที่ 1, 2 หรือ 3 ของธีม

<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />

ในกรณีที่ ColorOption แต่ละรายการมีการกำหนดสีเพียงสีเดียว คุณก็อ้างอิงเป็น CONFIGURATION.myThemeColor ได้โดยไม่มีดัชนี

INSERT ALT TEXT HERE INSERT ALT TEXT HERE

จากนั้นผู้ใช้สามารถเลือกรายการธีมที่ต้องการในเครื่องมือแก้ไขหน้าปัด

รสชาติ

หมายเหตุ: รูปแบบต่างๆ ใช้ได้กับ Watch Face Format เวอร์ชัน 2 ขึ้นไป

UserConfigurations ช่วยให้ผู้ใช้มีความยืดหยุ่นอย่างมาก แต่ยิ่งคุณเพิ่มจำนวนองค์ประกอบการกําหนดค่าที่กําหนดไว้ จํานวนชุดค่าผสมก็ยิ่งเพิ่มขึ้นอย่างมาก

Flavors ช่วยให้คุณกำหนดค่าที่กำหนดล่วงหน้าสำหรับ UserConfigurations ที่คุณคิดว่าควรไฮไลต์

จากนั้นผู้ใช้สามารถเลือกจากรสชาติที่กำหนดล่วงหน้าเหล่านี้ภายในแอปที่ใช้ร่วมกัน หรือจะเลือกค่าการกำหนดค่าแต่ละรายการแยกกันก็ได้

ตัวอย่างเช่น ลองดูหน้าปัดที่คุณกำหนดการตั้งค่า 3 รายการ (องค์ประกอบด้านในและรายละเอียดของแอตทริบิวต์ถูกละไว้เพื่อความชัดเจน)

<UserConfigurations>
  <ColorConfiguration id="themeColor" ...>
    <ColorOption id="0" displayName="bright_label" ... />
    <ColorOption id="1" displayName="monochrome_label" ... />
  </ColorConfiguration>
  <ListConfiguration id="clockAppearance" ... >
    <ListOption id="0" displayName="big_and_bold_label" ... />
    <ListrOption id="1" displayName="minimal_label" ... />
  </ListConfiguration>
  <BooleanConfiguration id="showHr" ... />
</UserConfigurations>

คุณได้กําหนดสิ่งต่อไปนี้

  1. การกําหนดค่าธีมสี ซึ่งช่วยให้ผู้ใช้เลือกธีมสีที่จะใช้ คุณได้กำหนดธีม 2 ธีม ได้แก่ ธีมสีสันสดใสและธีมโมโนโครม
  2. รายการตัวเลือกลักษณะของนาฬิกา คุณได้กำหนดทางเลือก 2 แบบ ได้แก่ นาฬิกาตัวหนาขนาดใหญ่และนาฬิกาที่ดูมินิมอลมากขึ้น
  3. ตัวเลือกว่าจะแสดงอัตราการเต้นของหัวใจของผู้ใช้บนหน้าปัดหรือไม่

นอกจากนี้ คุณยังมี ComplicationSlot บนหน้าปัด

คุณตัดสินใจว่าต้องการไฮไลต์ Flavors 2 รายการให้ผู้ใช้เห็น การตั้งค่าทั้งหมดเหล่านี้มีชุดค่าผสมที่เป็นไปได้อีกมากมาย แต่นี่คือการตั้งค่าที่คุณคิดว่าได้ผลดีที่สุด

  1. รสชาติแบบสปอร์ต: ประกอบด้วยส่วนต่อไปนี้
    1. ธีมสีสดใสเพื่อเพิ่มพลังให้คุณและกระตุ้นให้แอ็กทีฟ (รหัส: 0)
    2. นาฬิกาขนาดใหญ่และชัดเจนเพื่อให้มองเห็นขณะออกกำลังกาย (รหัส: 0)
    3. อัตราการเต้นของหัวใจที่แสดงบนหน้าปัดเพื่อใช้เป็นข้อมูลอ้างอิง
    4. ช่องข้อมูลแทรกที่แสดงจำนวนก้าว
  2. รสชาติที่ซับซ้อน: ประกอบด้วยส่วนต่อไปนี้
    1. ธีมสีโมโนโครมเพื่อให้เข้ากับชุดทุกแบบ (รหัส: 1)
    2. นาฬิกามินิมอลที่เข้ากับทุกสภาพแวดล้อม (รหัส: 1)
    3. ไม่มีอัตราการเต้นของหัวใจแสดงบนหน้าปัด
    4. ไม่ได้เปิดใช้ช่องข้อมูลแทรก

ต้องเปิดใช้ตัวแปรใน watch_face_info.xml ดังนี้

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
    ...
    <MultipleInstancesAllowed value="true" />
    <FlavorsSupported value="true" />
</WatchFaceInfo>

จากนั้นจะกําหนดแต่ละ Flavor ภายใน UserConfigurations ดังนี้

<Flavors defaultValue="sportyFlavor">
  <Flavor id="sportyFlavor" ... >
    <Configuration id="themeColor" optionId="0"/>
    <Configuration id="clockAppearance" optionId="0"/>
    <Configuration id="showHr" optionId="TRUE"/>
    <ComplicationSlot slotId="0">
      <DefaultProviderPolicy
              defaultSystemProvider="STEP_COUNT"
              defaultSystemProviderType="SHORT_TEXT"/>
    </ComplicationSlot>
  </Flavor>
  <Flavor id="sophisticatedFlavor" ... >
    <Configuration id="themeColor" optionId="1"/>
    <Configuration id="clockAppearance" optionId="1"/>
    <Configuration id="showHr" 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>