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