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>
তারপর, বুলিয়ান বিকল্প দুটি উপায়ে ব্যবহার করা যেতে পারে:
ওয়াচ ফেসে
SceneBooleanConfigurationস্ট্রাকচার ব্যবহার করা:<!-- 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 হিসেবেও রেফার করা যেতে পারে, তবে সেক্ষেত্রে কোনও
ইনডেক্স ব্যবহার করা যাবে না। ব্যবহারকারী তারপরে ওয়াচ
ফেস এডিটরে নিজের পছন্দের থিম এন্ট্রি বেছে নিতে পারবেন।
ফ্লেভার
মনে রাখবেন: Watch Face Format-এর ভার্সন ২ ও তার পরের যেকোনও ভার্সনে ফ্লেভার কাজ করে।
UserConfigurations ব্যবহারকারীকে অনেক বেশি সুবিধা দেয়, কিন্তু আপনি যত বেশি
কনফিগারেশন এলিমেন্ট যোগ করবেন, তত বেশি সংখ্যক
কম্বিনেশন তৈরি হতে পারে।
Flavors আপনাকে UserConfigurations-এর জন্য প্রিসেট নির্ধারণ করতে দেয়, যেগুলি
আপনার মতে হাইলাইট করার মতো।
ব্যবহারকারী তারপর কম্প্যানিয়ন অ্যাপের মধ্যে থেকে আগে থেকেই সেট করা ফ্লেভার বেছে নিতে পারবেন, অথবা প্রতিটি কনফিগারেশন ভ্যালু আলাদা আলাদা করে বেছে নেওয়া চালিয়ে যেতে পারবেন।
যেমন, এমন একটি ওয়াচফেসের কথা বিবেচনা করুন যেখানে আপনি তিনটি সেটিংস নির্ধারণ করেছেন:
- কালার থিম কনফিগারেশন, যার মাধ্যমে ব্যবহারকারী কোন কালার থিম প্রয়োগ করবেন তা বেছে নিতে পারবেন। আপনি দুটি থিম সংজ্ঞায়িত করেছেন, একটি রঙিন এবং একটি মনোক্রোম।
- ব্যাকগ্রাউন্ডের তালিকা। আপনি ব্যবহারকারীর বেছে নেওয়ার জন্য দুটি বিকল্প নির্দিষ্ট করেছেন।
- ওয়াচ ফেসে ব্যবহারকারীর হার্ট রেট দেখানো হবে কিনা সেই বিকল্প।
এছাড়াও, ওয়াচফেসে আপনার ComplicationSlot আছে।
আপনি সিদ্ধান্ত নিয়েছেন যে ব্যবহারকারীকে দুটি Flavors হাইলাইট করে দেখাতে চান।
এইসব সেটিংসের আরও অনেক সম্ভাব্য কম্বিনেশন আছে, কিন্তু এগুলি হল
সেইসব কম্বিনেশন যেগুলি আপনার মতো সবচেয়ে ভালো কাজ করে:
- স্পোর্টি ফ্লেভার: এর মধ্যে থাকবে:
- আপনাকে এনার্জেটিক ও অ্যাক্টিভ করে তুলতে উজ্জ্বল রঙের থিম (আইডি: ০)
- প্রথম ব্যাকগ্রাউন্ড ছবি (ID: 0)
- রেফারেন্সের জন্য ওয়াচফেসে হার্ট রেট দেখানো
- কমপ্লিকেশন স্লটে ধাপের সংখ্যা দেখানো হচ্ছে
- একটি পরিশীলিত ফ্লেভার: এর মধ্যে থাকবে:
- যেকোনও পোশাকের সাথে মানানসই মোনোক্রোম রঙের থিম (ID: 1)
- দ্বিতীয় ব্যাকগ্রাউন্ড ছবি (ID: 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>