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"
> < defaultVal>ue="TRUE&<quot;
>/
/UserConfigurations
...
/WatchFace
จากนั้นจะใช้ตัวเลือกบูลีนได้ 2 วิธีดังนี้
การใช้โครงสร้าง
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 --หรือจะใช้ตัวเลือกการกําหนดค่าในนิพจน์ก็ได้
<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
การใช้ตัวเลือกนี้ก็มี 2 วิธีเช่นเดียวกับตัวเลือกบูลีน ดังนี้
การใช้องค์ประกอบ
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หรือจะใช้ตัวเลือกการกําหนดค่าในนิพจน์ที่ซับซ้อนมากขึ้นก็ได้ ดังนี้
<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 Format ช่วยให้คุณกำหนดธีมสีผ่าน ColorConfiguration ได้
ผู้ใช้สามารถเลือกธีมที่ต้องการจากเครื่องมือแก้ไขหน้าปัด และสีจากธีมนี้จะปรากฏในคำจำกัดความของหน้าปัด
เช่น หากต้องการกำหนดธีมที่มี 2 รายการและ 3 สีในธีม ให้ทำดังนี้
ผ่อนคลาย |
|||
Urban |
กําหนด 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
จากนั้นจึงนำไปใช้เป็นแหล่งข้อมูลแทนค่าสีฐานสิบหก โปรดดูวิธีระบุค่าดัชนีเพื่อเลือกองค์ประกอบที่ 1, 2 หรือ 3 ของธีม
<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 ได้โดยไม่มีดัชนี จากนั้นผู้ใช้สามารถเลือกรายการธีมที่ต้องการในเครื่องมือแก้ไขหน้าปัด
รสชาติ
หมายเหตุ: รูปแบบต่างๆ ใช้ได้กับ Watch Face Format เวอร์ชัน 2 ขึ้นไป
UserConfigurations ช่วยให้ผู้ใช้มีความยืดหยุ่นอย่างมาก แต่เมื่อคุณเพิ่มจำนวนองค์ประกอบการกําหนดค่าที่กําหนดไว้ จํานวนชุดค่าผสมอาจเพิ่มขึ้นอย่างมาก
Flavors ช่วยให้คุณกำหนดค่าที่กำหนดล่วงหน้าสำหรับ UserConfigurations ที่คุณคิดว่าควรไฮไลต์ได้
จากนั้นผู้ใช้สามารถเลือกจากรสชาติที่กำหนดล่วงหน้าเหล่านี้ภายในแอปที่ใช้ร่วมกัน หรือจะเลือกค่าการกำหนดค่าแต่ละรายการแยกกันก็ได้
ตัวอย่างเช่น ลองดูหน้าปัดที่คุณกำหนดการตั้งค่า 3 รายการ (องค์ประกอบภายในและรายละเอียดของแอตทริบิวต์ถูกละเว้นเพื่อความชัดเจน)
<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
คุณได้กําหนดสิ่งต่อไปนี้
- การกําหนดค่าธีมสี ซึ่งช่วยให้ผู้ใช้เลือกธีมสีที่จะใช้ คุณได้กำหนดธีม 2 ธีม ได้แก่ ธีมสีสันสดใสและธีมโมโนโครม
- รายการตัวเลือกลักษณะของนาฬิกา คุณได้กำหนดทางเลือก 2 รายการ ได้แก่ นาฬิกาตัวหนาขนาดใหญ่และนาฬิกาที่ดูมินิมอลมากขึ้น
- ตัวเลือกว่าจะแสดงอัตราการเต้นของหัวใจของผู้ใช้บนหน้าปัดหรือไม่
นอกจากนี้ คุณยังมี ComplicationSlot บนหน้าปัด
คุณตัดสินใจว่าต้องการไฮไลต์ Flavors 2 รายการให้ผู้ใช้เห็น
การตั้งค่าทั้งหมดเหล่านี้มีชุดค่าผสมที่เป็นไปได้อีกมากมาย แต่นี่คือการตั้งค่าที่คุณคิดว่าได้ผลดีที่สุด
- รสชาติแบบสปอร์ต: ประกอบด้วยส่วนต่อไปนี้
- ธีมสีสดใสเพื่อเพิ่มพลังให้คุณและกระตุ้นให้แอ็กทีฟ (รหัส: 0)
- นาฬิกาขนาดใหญ่และชัดเจนเพื่อให้มองเห็นขณะออกกำลังกาย (รหัส: 0)
- อัตราการเต้นของหัวใจที่แสดงบนหน้าปัดเพื่อใช้เป็นข้อมูลอ้างอิง
- ช่องข้อมูลแทรกที่แสดงจำนวนก้าว
- รสชาติที่ซับซ้อน: ประกอบด้วยส่วนต่อไปนี้
- ธีมสีโมโนโครมเพื่อให้เข้ากับชุดทุกแบบ (รหัส: 1)
- นาฬิกามินิมอลที่เข้ากับทุกสภาพแวดล้อม (รหัส: 1)
- ไม่มีอัตราการเต้นของหัวใจแสดงบนหน้าปัด
- ไม่ได้เปิดใช้ช่องข้อมูลแทรก
ต้องเปิดใช้ตัวแปรใน 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
จากนั้นจะกําหนดแต่ละ Flavor ภายใน 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