UserConfigurations की मदद से, ऐसे विकल्प बनाए जा सकते हैं जिनमें से उपयोगकर्ता किसी एक को चुन सकता है. चुनी गई वैल्यू के आधार पर, वॉच फ़ेस के एलिमेंट के दिखने के तरीके में बदलाव किया जा सकता है.
उपयोगकर्ता कॉन्फ़िगरेशन के विकल्प ये हो सकते हैं:
BooleanConfiguration: आम तौर पर, इसका इस्तेमाल तब किया जाता है, जब उपयोगकर्ता के पास किसी एलिमेंट को दिखाने या न दिखाने का विकल्प होता है. इसके अलावा, इसका इस्तेमाल दो स्टाइल में से किसी एक को चुनने के लिए भी किया जाता हैListConfiguration: उपयोगकर्ता को कई विकल्प उपलब्ध कराता है. उदाहरण के लिए, अगर स्मार्टवॉच की होम स्क्रीन पर चुनने के लिए चार अलग-अलग बैकग्राउंड इमेज हैं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>
इसके बाद, बूलियन विकल्पों का इस्तेमाल दो तरीकों से किया जा सकता है:
वॉच फ़ेस
SceneमेंBooleanConfigurationस्ट्रक्चर का इस्तेमाल करके:<!-- 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>
बूलियन विकल्पों की तरह, इसे इस्तेमाल करने के दो तरीके हैं:
SceneमेंListConfigurationएलिमेंट का इस्तेमाल करना:<!-- 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>
रंग थीम
वॉच फ़ेस फ़ॉर्मैट की मदद से, ColorConfiguration के ज़रिए कलर थीम तय की जा सकती हैं.
लोग वॉच फ़ेस एडिटर से अपनी पसंद की थीम चुन सकते हैं. साथ ही, इस थीम के रंग आपके वॉच फ़ेस की पूरी परिभाषा में दिख सकते हैं.
उदाहरण के लिए, थीम में दो एंट्री और तीन रंग तय करने के लिए, 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 के तौर पर भी रेफ़रंस किया जा सकता है. इसके बाद, उपयोगकर्ता वॉच फ़ेस एडिटर में जाकर, अपनी पसंद की थीम चुन सकता है.
स्वाद
ध्यान दें: फ़्लेवर, वॉच फ़ेस फ़ॉर्मैट के वर्शन 2 और इसके बाद के वर्शन पर काम करते हैं.
UserConfigurations से उपयोगकर्ता को कई तरह के विकल्प मिलते हैं. हालांकि, कॉन्फ़िगरेशन के लिए तय किए गए एलिमेंट की संख्या बढ़ने पर, कॉम्बिनेशन की संख्या भी बहुत ज़्यादा बढ़ सकती है.
Flavors की मदद से, UserConfigurations के लिए प्रीसेट तय किए जा सकते हैं. ये प्रीसेट, आपकी राय में हाइलाइट करने लायक होने चाहिए.
इसके बाद, उपयोगकर्ता कंपैनियन ऐप्लिकेशन में पहले से सेट किए गए इन फ़्लेवर में से किसी एक को चुन सकता है. इसके अलावा, वह हर कॉन्फ़िगरेशन वैल्यू को अलग-अलग चुनना जारी रख सकता है.
उदाहरण के लिए, मान लें कि आपको स्मार्टवॉच के फ़ेस के लिए तीन सेटिंग तय करनी हैं:
- यह कलर थीम का कॉन्फ़िगरेशन है. इससे उपयोगकर्ता यह चुन सकता है कि उसे कौनसी कलर थीम लागू करनी है. आपने दो थीम तय की हैं. इनमें से एक रंगीन है और दूसरी मोनोक्रोम.
- बैकग्राउंड की सूची. आपने दो विकल्प तय किए हैं, जिनमें से उपयोगकर्ता कोई एक चुन सकता है.
- यह चुनने का विकल्प कि स्मार्टवॉच की होम स्क्रीन पर, उपयोगकर्ता की धड़कन की दर दिखेगी या नहीं.
इसके अलावा, आपके पास होम स्क्रीन पर ComplicationSlot होता है.
आपने तय किया कि आपको उपयोगकर्ता को दो Flavors हाइलाइट करने हैं.
इन सभी सेटिंग के कई और कॉम्बिनेशन हो सकते हैं. हालांकि, ये वे कॉम्बिनेशन हैं जो आपके हिसाब से सबसे सही हैं:
- स्पोर्टी फ़्लेवर: इसमें यह कॉन्टेंट शामिल होगा:
- ब्राइट कलर थीम, जो आपको ऊर्जावान बनाएगी और सक्रिय रखेगी (आईडी: 0)
- पहली बैकग्राउंड इमेज (आईडी: 0)
- वॉच फ़ेस पर धड़कन की दर दिखाने वाली इमेज
- स्मार्ट वॉच के विजेट का स्लॉट, जिसमें कदमों की संख्या दिख रही है
- बेहतरीन स्वाद: इसमें यह शामिल होगा:
- मोनोक्रोम कलर थीम, जो किसी भी पोशाक से मैच करती है (आईडी: 1)
- बैकग्राउंड की दूसरी इमेज (आईडी: 1)
- स्मार्टवॉच की होम स्क्रीन पर धड़कन की दर नहीं दिख रही है
- कॉम्प्लिकेशन स्लॉट चालू नहीं है
watch_face_info.xml में फ़्लेवर चालू करने होते हैं. इसलिए, watch_face_info.xml फ़ाइल में FlavorsSupported एलिमेंट को 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>