এই পৃষ্ঠাটিতে ঐচ্ছিক উইজেট বর্ধিতকরণের বিশদ অন্তর্ভুক্ত রয়েছে যা Android 12 (API স্তর 31) থেকে শুরু করে উপলব্ধ। এই বৈশিষ্ট্যগুলি ঐচ্ছিক, কিন্তু এগুলি আপনার ব্যবহারকারীদের উইজেট অভিজ্ঞতা বাস্তবায়ন এবং উন্নত করতে সহজ।
গতিশীল রং ব্যবহার করুন
অ্যান্ড্রয়েড 12 থেকে শুরু করে, একটি উইজেট বোতাম, ব্যাকগ্রাউন্ড এবং অন্যান্য উপাদানগুলির জন্য ডিভাইসের থিমের রং ব্যবহার করতে পারে। এটি বিভিন্ন উইজেট জুড়ে মসৃণ রূপান্তর এবং ধারাবাহিকতা প্রদান করে।
গতিশীল রং অর্জন করার দুটি উপায় আছে:
রুট লেআউটে সিস্টেমের ডিফল্ট থিম (
@android:style/Theme.DeviceDefault.DayNight
) ব্যবহার করুন।অ্যান্ড্রয়েড লাইব্রেরির জন্য উপাদান উপাদান থেকে উপাদান 3 থিম (
Theme.Material3.DynamicColors.DayNight
) ব্যবহার করুন, Android v1.6.0 এর জন্য উপাদান উপাদান থেকে শুরু করে উপলব্ধ।
রুট লেআউটে থিম সেট হয়ে গেলে, আপনি রুট বা এর যেকোনো বাচ্চাদের মধ্যে সাধারণ রঙের বৈশিষ্ট্য ব্যবহার করতে পারেন ডায়নামিক রঙগুলি বেছে নিতে।
আপনি ব্যবহার করতে পারেন এমন রঙের বৈশিষ্ট্যগুলির কিছু উদাহরণ নিম্নরূপ:
-
?attr/primary
-
?attr/primaryContainer
-
?attr/onPrimary
-
?attr/onPrimaryContainer
নিম্নলিখিত উদাহরণে উপাদান 3 থিম ব্যবহার করে, ডিভাইসের থিমের রঙ হল "বেগুনি।" অ্যাকসেন্ট রঙ এবং উইজেট ব্যাকগ্রাউন্ড হালকা এবং গাঢ় মোডের জন্য খাপ খায়, যেমনটি চিত্র 1 এবং 2 এ দেখানো হয়েছে।
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimaryContainer"
android:theme="@style/Theme.Material3.DynamicColors.DayNight">
<ImageView
...
app:tint="?attr/colorPrimaryContainer"
android:src="@drawable/ic_partly_cloudy" />
<!-- Other widget content. -->
</LinearLayout>


গতিশীল রঙের জন্য পশ্চাদগামী সামঞ্জস্য
ডায়নামিক রঙগুলি শুধুমাত্র Android 12 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে উপলব্ধ। নিম্ন সংস্করণের জন্য একটি কাস্টম থিম প্রদান করতে, ডিফল্ট থিম বৈশিষ্ট্যগুলি ব্যবহার করে আপনার কাস্টম রঙ এবং একটি নতুন কোয়ালিফায়ার ( values-v31
) সহ একটি ডিফল্ট থিম তৈরি করুন৷
এখানে উপাদান 3 থিম ব্যবহার করে একটি উদাহরণ:
/values/styles.xml
<resources>
<style name="MyWidgetTheme" parent="Theme.Material3.DynamicColors.DayNight">
<!-- Override default colorBackground attribute with custom color. -->
<item name="android:colorBackground">@color/my_background_color</item>
<!-- Add other colors/attributes. -->
</style>
</resources>
/values-v31/styles.xml
<resources>
<!-- Do not override any color attribute. -->
<style name="MyWidgetTheme" parent="Theme.Material3.DynamicColors.DayNight" />
</resources>
/layout/my_widget_layout.xml
<resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="?android:attr/colorBackground"
android:theme="@style/MyWidgetTheme" />
</resources>
ভয়েস সমর্থন সক্ষম করুন
অ্যাপ অ্যাকশনগুলি প্রাসঙ্গিক ব্যবহারকারীর ভয়েস কমান্ডের প্রতিক্রিয়া হিসাবে Google সহকারীকে উইজেটগুলি প্রদর্শন করতে দেয়। বিল্ট-ইন ইন্টেন্টে (BIIs) সাড়া দেওয়ার জন্য আপনার উইজেট কনফিগার করার মাধ্যমে, আপনার অ্যাপ অ্যাসিস্ট্যান্ট সারফেস যেমন অ্যান্ড্রয়েড এবং অ্যান্ড্রয়েড অটোতে সক্রিয়ভাবে উইজেটগুলি প্রদর্শন করতে পারে। ব্যবহারকারীদের কাছে তাদের লঞ্চারে সহকারী দ্বারা প্রদর্শিত উইজেটগুলি পিন করার বিকল্প রয়েছে, যা ভবিষ্যতের ব্যস্ততাকে উত্সাহিত করে৷
উদাহরণস্বরূপ, আপনি GET_EXERCISE_OBSERVATION
BII ট্রিগার করে এমন ব্যবহারকারীর ভয়েস কমান্ডগুলি পূরণ করতে আপনার ব্যায়াম অ্যাপের জন্য ওয়ার্কআউট সারাংশ উইজেট কনফিগার করতে পারেন। সহকারী সক্রিয়ভাবে আপনার উইজেট প্রদর্শন করে যখন ব্যবহারকারীরা অনুরোধ করে এই BII ট্রিগার করে, "Hey Google, ExampleApp এ এই সপ্তাহে আমি কত মাইল দৌড়েছি?"
ব্যবহারকারীর ইন্টারঅ্যাকশনের বিভিন্ন বিভাগকে কভার করে ডজন ডজন BII রয়েছে, যা প্রায় যেকোনো অ্যান্ড্রয়েড অ্যাপকে ভয়েসের জন্য তাদের উইজেট উন্নত করতে দেয়। শুরু করতে, অ্যান্ড্রয়েড উইজেটের সাথে অ্যাপ অ্যাকশন একীভূত করুন দেখুন।
আপনার উইজেটে একটি নাম যোগ করুন
উইজেটগুলির একটি অনন্য নাম থাকা প্রয়োজন যখন সেগুলি উইজেট পিকারে প্রদর্শিত হয়।
AndroidManifest.xml ফাইলে উইজেটের receiver
এলিমেন্টের label
অ্যাট্রিবিউট থেকে উইজেটের নাম লোড করা হয়।
<receiver
….
android:label="Memories">
….
</receiver>
আপনার উইজেটের জন্য একটি বিবরণ যোগ করুন
অ্যান্ড্রয়েড 12 থেকে শুরু করে, আপনার উইজেটের জন্য প্রদর্শন করার জন্য উইজেট পিকারের জন্য একটি বিবরণ প্রদান করুন।

<appwidget-provider>
এর description
বৈশিষ্ট্য ব্যবহার করে আপনার উইজেটের জন্য একটি বিবরণ প্রদান করুন। উপাদান:
<appwidget-provider
android:description="@string/my_widget_description">
</appwidget-provider>
আপনি Android এর পূর্ববর্তী সংস্করণগুলিতে descriptionRes
বৈশিষ্ট্যটি ব্যবহার করতে পারেন, তবে উইজেট পিকার দ্বারা এটি উপেক্ষা করা হয়।
মসৃণ রূপান্তর সক্ষম করুন
অ্যান্ড্রয়েড 12 থেকে শুরু করে, লঞ্চারগুলি একটি মসৃণ রূপান্তর প্রদান করে যখন কোনও ব্যবহারকারী একটি উইজেট থেকে আপনার অ্যাপ চালু করে।
এই উন্নত রূপান্তরটি সক্ষম করতে, আপনার পটভূমি উপাদান সনাক্ত করতে @android:id/background
বা android.R.id.background
ব্যবহার করুন:
// Top-level layout of the widget.
<LinearLayout
android:id="@android:id/background">
</LinearLayout>
আপনার অ্যাপটি ব্রেক না করে Android এর পূর্ববর্তী সংস্করণগুলিতে @android:id/background
ব্যবহার করতে পারে, কিন্তু এটি উপেক্ষা করা হয়।
RemoteViews এর রানটাইম পরিবর্তন ব্যবহার করুন
অ্যান্ড্রয়েড 12 থেকে শুরু করে, আপনি বেশ কয়েকটি RemoteViews
পদ্ধতির সুবিধা নিতে পারেন যা RemoteViews
বৈশিষ্ট্যগুলির রানটাইম পরিবর্তনের জন্য প্রদান করে। যোগ করা পদ্ধতির সম্পূর্ণ তালিকার জন্য RemoteViews
API রেফারেন্স দেখুন।
নিম্নলিখিত কোড উদাহরণ দেখায় কিভাবে এই পদ্ধতির কয়েকটি ব্যবহার করতে হয়।
কোটলিন
// Set the colors of a progress bar at runtime. remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList()) // Specify exact sizes for margins. remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP)
জাভা
// Set the colors of a progress bar at runtime. remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList()); // Specify exact sizes for margins. remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP);