विजेट चुनने वाले टूल में, जनरेट की गई झलकें जोड़ना

जनरेट की गई विजेट की झलक की मदद से, अपने विजेट के लिए डाइनैमिक और लोगों की दिलचस्पी के हिसाब से झलक बनाई जा सकती हैं. इससे यह सही तरीके से पता चलता है कि विजेट, किसी व्यक्ति की होम स्क्रीन पर कैसे दिखेंगे. इन्हें पुश एपीआई के ज़रिए उपलब्ध कराया जाता है. इसका मतलब है कि आपका ऐप्लिकेशन, अपने लाइफ़साइकल के दौरान किसी भी समय झलक दिखा सकता है. इसके लिए, उसे विजेट होस्ट से साफ़ तौर पर अनुरोध पाने की ज़रूरत नहीं होती.

इस गाइड में, Glance पर आधारित विजेट के लिए झलक दिखाने का तरीका बताया गया है. अगर आपका विजेट RemoteViews की मदद से लागू किया गया है, तो विजेट पिकर में झलकें जोड़ना लेख पढ़ें.

Android 15 और इसके बाद के वर्शन वाले डिवाइसों पर, Glance विजेट के लिए अपने ऐप्लिकेशन के विजेट पिकर के अनुभव को बेहतर बनाने के लिए, GlanceAppWidget.providePreview का इस्तेमाल करके जनरेट की गई विजेट की झलक दिखाएं. साथ ही, इससे पहले के वर्शन के लिए previewImage एट्रिब्यूट की वैल्यू दें. इसके अलावा, अगर जनरेट की गई झलक उपलब्ध नहीं है, तो Android 15 और इसके बाद के वर्शन पर फ़ॉलबैक के तौर पर भी इस एट्रिब्यूट का इस्तेमाल किया जा सकता है.

ज़्यादा जानकारी के लिए, YouTube पर लाइव अपडेट और विजेट की मदद से अपने ऐप्लिकेशन को बेहतर बनाएं लेख पढ़ें.

जनरेट किए गए विजेट की झलक देखने के लिए, ऐप्लिकेशन सेट अप करना

Android 15 या इसके बाद के वर्शन वाले डिवाइस पर, जनरेट की गई विजेट की झलक दिखाने के लिए, सबसे पहले मॉड्यूल build.gradle फ़ाइल में compileSdk की वैल्यू 35 या इससे ज़्यादा पर सेट करें. इससे विजेट पिकर में जनरेट की गई झलक दिखाने की सुविधा चालू हो जाएगी.

इसके बाद, ऐप्लिकेशन GlanceAppWidgetManager में setWidgetPreview का इस्तेमाल कर सकते हैं. सिस्टम के गलत इस्तेमाल को रोकने और सिस्टम की परफ़ॉर्मेंस को बेहतर बनाने के लिए, setWidgetPreview एक ऐसा एपीआई है जिस पर अनुरोधों की संख्या सीमित होती है. डिफ़ॉल्ट रूप से, हर घंटे में दो कॉल किए जा सकते हैं.

Jetpack Glance की मदद से अपडेट की गई झलक जनरेट करना

Jetpack Glance की मदद से बनाए गए विजेट के लिए, यह तरीका अपनाएं:

  1. झलक के लिए कंपोज़ेबल कॉन्टेंट उपलब्ध कराने के लिए, GlanceAppWidget.providePreview के फ़ंक्शन को बदलें. provideGlance में जिस तरह से किया जाता है उसी तरह से, अपने ऐप्लिकेशन का डेटा लोड करें और उसे विजेट के कॉन्टेंट कंपोज़ेबल में पास करें. इससे यह पक्का किया जा सकेगा कि झलक में सटीक डेटा दिखे. provideGlance के उलट, यह एक सिंगल कंपोज़िशन है. इसमें न तो रिकॉम्पोज़िशन होता है और न ही कोई इफ़ेक्ट होता है.

  2. झलक जनरेट करने और उसे पब्लिश करने के लिए, GlanceAppWidgetManager.setWidgetPreviews का इस्तेमाल करें.

झलक दिखाने के लिए, सिस्टम से कोई कॉलबैक नहीं होता. इसलिए, आपके ऐप्लिकेशन को यह तय करना होगा कि setWidgetPreviews का इस्तेमाल कब करना है. अपडेट करने की रणनीति, आपके विजेट के इस्तेमाल के उदाहरण पर निर्भर करती है:

  • अगर विजेट में स्थायी जानकारी है या वह झटपट कार्रवाई करने वाला विजेट है, तो ऐप्लिकेशन को पहली बार लॉन्च करने पर, विजेट की झलक सेट करें.
  • ऐप्लिकेशन में डेटा मौजूद होने पर, झलक सेट की जा सकती है. उदाहरण के लिए, उपयोगकर्ता के साइन इन करने या शुरुआती सेटअप के बाद.
  • चुनी गई कैडेंस के हिसाब से झलकियां अपडेट करने के लिए, समय-समय पर होने वाला टास्क सेट अप किया जा सकता है.

जनरेट की गई झलक से जुड़ी समस्या हल करना

आम तौर पर, यह समस्या तब होती है, जब झलक जनरेट करने के बाद, विजेट के ड्रॉप साइज़ के हिसाब से झलक वाली इमेज में इमेज, आइकॉन या अन्य कंपोज़ेबल मौजूद नहीं होते. अगर पहले से तय किया गया हो, तो ड्रॉप का साइज़, targetCellWidth और targetCellHeight से तय होता है. अगर ऐसा नहीं किया गया है, तो ऐप्लिकेशन विजेट की सेवा देने वाली कंपनी की जानकारी वाली फ़ाइल में मौजूद minWidth और minHeight से तय होता है.

ऐसा इसलिए होता है, क्योंकि Android डिफ़ॉल्ट रूप से सिर्फ़ उन कंपोज़ेबल को रेंडर करता है जो विजेट के कम से कम साइज़ पर दिखते हैं. दूसरे शब्दों में कहें, तो Android डिफ़ॉल्ट रूप से previewSizeMode को SizeMode.Single पर सेट करता है. यह ऐप्लिकेशन विजेट की सेवा देने वाली कंपनी की जानकारी वाले एक्सएमएल में android:minHeight और android:minWidth का इस्तेमाल करके यह तय करता है कि कौनसे कंपोज़ेबल ड्रॉ करने हैं.

इस समस्या को ठीक करने के लिए, अपने GlanceAppWidget में previewSizeMode को लागू करें और इसे SizeMode.Responsive पर सेट करें. साथ ही, DpSize की वैल्यू का सेट उपलब्ध कराएं. इससे Android को, झलक दिखाने के लिए ज़रूरी सभी लेआउट साइज़ के बारे में पता चलता है. इससे यह पक्का होता है कि सभी एलिमेंट सही तरीके से दिखें.

चुनिंद साइज़ के डिवाइसों के लिए ऑप्टिमाइज़ करें. कम से कम साइज़ से शुरू करके, अपने विजेट के ब्रेकपॉइंट के हिसाब से एक या दो साइज़ दें. Android के पुराने वर्शन के साथ काम करने के लिए, कम से कम एक previewImage तय करें. आपको विजेट डिज़ाइन से जुड़े दिशा-निर्देश में, अलग-अलग ग्रिड साइज़ के लिए कम से कम डीपी वैल्यू मिल सकती हैं.

Android के पुराने वर्शन के साथ काम करना

Android 14 और इससे पहले के वर्शन पर चलने वाले डिवाइसों पर विजेट की झलक दिखाने के लिए, previewImage एट्रिब्यूट की वैल्यू दें. इसके अलावा, Android 15 और इसके बाद के वर्शन पर जनरेट की गई झलक उपलब्ध न होने पर भी इस एट्रिब्यूट का इस्तेमाल किया जा सकता है.

विजेट के दिखने के तरीके में बदलाव करने पर, झलक वाली इमेज को अपडेट करें.