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

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

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

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

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

  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>

เช่นเดียวกับตัวเลือกบูลีน คุณสามารถใช้ตัวเลือกนี้ได้ 2 วิธี

  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 ได้ ผู้ใช้สามารถเลือกธีมที่ต้องการจากโปรแกรมแก้ไขหน้าปัด และสีจากธีมนี้จะปรากฏในคำจำกัดความของหน้าปัดทั้งหมด

เช่น หากต้องการกำหนดธีมที่มี 2 รายการและ 3 สีในธีม ให้กำหนด 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 ได้โดยไม่ต้องระบุดัชนี จากนั้นผู้ใช้จะเลือกรายการธีมที่ต้องการในโปรแกรมแก้ไขหน้าปัดได้

รสชาติ

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

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

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

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

ตัวอย่างเช่น ลองพิจารณาหน้าปัดที่คุณกำหนดการตั้งค่า 3 รายการ

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

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

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

  1. รสชาติสปอร์ต: ซึ่งประกอบด้วย
    1. ธีมสีสดใสเพื่อกระตุ้นให้คุณกระปรี้กระเปร่าและแอ็กทีฟ (รหัส: 0)
    2. ภาพพื้นหลังแรก (รหัส: 0)
    3. อัตราการเต้นของหัวใจที่แสดงบนหน้าปัดเพื่อใช้อ้างอิง
    4. ช่องสำหรับข้อมูลแทรกที่แสดงจำนวนก้าว
  2. รสชาติที่ซับซ้อน: ซึ่งประกอบด้วย
    1. ธีมสีขาวดำเพื่อให้เข้ากับชุดทุกชุด (รหัส: 1)
    2. ภาพพื้นหลังที่ 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>