UserConfigurations
की मदद से, ऐसे विकल्प बनाए जा सकते हैं जिनमें से उपयोगकर्ता अपनी पसंद के विकल्प चुन सकता है. चुनी गई वैल्यू के आधार पर, वॉच फ़ेस के एलिमेंट के दिखने के तरीके में बदलाव किया जा सकता है.
उपयोगकर्ता कॉन्फ़िगरेशन के विकल्प ये हो सकते हैं:
BooleanConfiguration
: आम तौर पर, इसका इस्तेमाल उन जगहों पर किया जाता है जहां उपयोगकर्ता के पास एलिमेंट दिखाने या न दिखाने का विकल्प हो या दो स्टाइल में से किसी एक को चुनने का विकल्प होListConfiguration
: उपयोगकर्ता को कई विकल्प उपलब्ध कराता है. उदाहरण के लिए, अगर स्मार्टवॉच की होम स्क्रीन पर चार अलग-अलग बैकग्राउंड इमेज चुनने के विकल्प हों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>
इसके बाद, बूलियन विकल्पों का इस्तेमाल दो तरीकों से किया जा सकता है:
स्मार्टवॉच की होम स्क्रीन
Scene
मेंBooleanConfiguration
स्ट्रक्चर का इस्तेमाल करके:<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>
बूलियन विकल्पों की तरह ही, इसका इस्तेमाल करने के दो तरीके हैं:
Scene
मेंListConfiguration
एलिमेंट का इस्तेमाल करना:<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
की मदद से रंग वाली थीम तय की जा सकती हैं.
उपयोगकर्ता, वॉच फ़ेस एडिटर से अपनी पसंद की थीम चुन सकते हैं. साथ ही, इस थीम के रंग आपकी वॉच फ़ेस की पूरी डिफ़िनिशन में दिख सकते हैं.
उदाहरण के लिए, दो एंट्री और तीन रंगों वाली थीम तय करने के लिए:
आरामदायक |
|||
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>
इसके बाद, इनका इस्तेमाल हेक्साडेसिमल रंग वैल्यू के बजाय डेटा सोर्स के तौर पर किया जा सकता है. ध्यान दें कि थीम के पहले, दूसरे या तीसरे एलिमेंट को चुनने के लिए, इंडेक्स वैल्यू को कैसे तय किया जाता है:
<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
के लिए पहले से सेट किए गए रंग तय किए जा सकते हैं जिन्हें आपको हाइलाइट करना है.
इसके बाद, उपयोगकर्ता साथ में काम करने वाले ऐप्लिकेशन में इन पहले से तय किए गए फ़्लेवर में से किसी एक को चुन सकता है या फिर हर कॉन्फ़िगरेशन वैल्यू को अलग से चुन सकता है.
उदाहरण के लिए, स्मार्टवॉच की किसी ऐसी होम स्क्रीन पर विचार करें जिसमें आपने तीन सेटिंग तय की हैं. साफ़ तौर पर समझाने के लिए, एलिमेंट और एट्रिब्यूट की जानकारी नहीं दी गई है:
<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>
आपने यह तय किया है:
- कलर थीम का कॉन्फ़िगरेशन, जिसकी मदद से उपयोगकर्ता यह चुन सकता है कि कौनसी कलर थीम लागू करनी है. आपने दो थीम तय की हैं, एक रंगीन और एक मोनोक्रोम.
- घड़ी के डिसप्ले के विकल्पों की सूची. आपने दो विकल्प तय किए हैं: बड़ी और बोल्ड घड़ी और कम जगह घेरने वाली घड़ी.
- यह चुनने का विकल्प कि स्मार्टवॉच की होम स्क्रीन पर, उपयोगकर्ता की धड़कन की दर दिखे या नहीं.
इसके अलावा, स्मार्टवॉच की होम स्क्रीन पर ComplicationSlot
दिखेगा.
आपने तय किया है कि आपको उपयोगकर्ता को दो Flavors
हाइलाइट करने हैं.
इन सभी सेटिंग के कई और कॉम्बिनेशन हो सकते हैं. हालांकि, इनमें से ये सबसे सही हैं:
- स्पोर्टी फ़्लेवर: इसमें यह कॉन्टेंट शामिल होगा:
- चमकदार रंग वाली थीम, ताकि आपको ऊर्जा मिले और आप ज़्यादा सक्रिय रहें (आईडी: 0)
- बड़ी और बोल्ड घड़ी, ताकि इसे कसरत करते समय देखा जा सके (आईडी: 0)
- रेफ़रंस के लिए, स्मार्टवॉच की होम स्क्रीन पर दिख रही दिल की धड़कन की दर
- कदमों की संख्या दिखाने वाला विजेट
- बेहतर फ़्लेवर: इसमें ये चीज़ें शामिल होंगी:
- किसी भी आउटफ़िट से मैच करने वाली मोनोक्रोम कलर थीम (आईडी: 1)
- किसी भी एनवायरमेंट में अच्छी तरह से फ़िट होने वाली, कम से कम जानकारी वाली घड़ी (आईडी: 1)
- स्मार्टवॉच की होम स्क्रीन पर धड़कन की दर नहीं दिख रही है
- कॉम्प्लीकेशन स्लॉट चालू नहीं है
watch_face_info.xml
में फ़्लेवर चालू करने के लिए:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
...
<MultipleInstancesAllowed value="true" />
<FlavorsSupported value="true" />
</WatchFaceInfo>
इसके बाद, हर फ़्लेवर को 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>