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