आपल्या अॅपसाठी Android विजेट तयार करा

लेखक: Lewis Jackson
निर्मितीची तारीख: 13 मे 2021
अद्यतन तारीख: 1 जुलै 2024
Anonim
तुमच्या Android अॅपसाठी विजेट तयार करा | Android स्टुडिओ ट्यूटोरियल
व्हिडिओ: तुमच्या Android अॅपसाठी विजेट तयार करा | Android स्टुडिओ ट्यूटोरियल

सामग्री


ओएसच्या सुरुवातीच्या काळापासून, अँड्रॉइडच्या विजेट्सने वापरकर्त्यांना त्यांच्या आवडत्या अ‍ॅप्ससह, त्यांच्या होमस्क्रीन आरामात व्यस्त ठेवण्याची परवानगी दिली आहे. तर आपण Android विजेट कसे तयार करता?

विकसकासाठी, विजेट्स आपल्या अनुप्रयोगास वापरकर्त्याच्या होमस्क्रीनवर मौल्यवान उपस्थिती देतात. अ‍ॅप ड्रॉवर मध्ये दुर्लक्ष करण्याऐवजी वापरकर्त्यांना आपल्या अ‍ॅपबद्दल स्मरण करून दिले जाईल प्रत्येक वेळी आपल्या अ‍ॅपच्या सर्वात मनोरंजक आणि उपयुक्त सामग्रीचे पूर्वावलोकन मिळविताना - ते त्यांच्या होमस्क्रीनकडे पाहतात.

विजेट्स आपल्या अनुप्रयोगास वापरकर्त्याच्या होमस्क्रीनवर मौल्यवान उपस्थिती देतात

या लेखामध्ये, आपल्याकडे अँड्रॉइड विजेट तयार करुन वापरकर्त्यांना आपल्या अ‍ॅपमध्ये व्यस्त राहण्यास प्रोत्साहित करताना एक चांगला वापरकर्ता अनुभव कसा प्रदान करायचा हे मी दर्शवितो! या लेखाच्या शेवटी, आपण एक स्क्रोल करण्यायोग्य संग्रह विजेट तयार केले आहे जे वापरकर्त्याच्या होमस्क्रीनवर पूर्ण डेटा सेट दर्शविते.

आपण वापरकर्त्यांचे विजेट वितरीत करीत आहात हे सुनिश्चित करण्यासाठी पाहिजे त्यांच्या होमस्क्रीनवर ठेवण्यासाठी, आम्ही एक कॉन्फिगरेशन अ‍ॅक्टिव्हिटी देखील तयार करीत आहोत, जे वापरकर्त्यांना विजेटची सामग्री, देखावा आणि वैशिष्ट्ये सानुकूलित करण्यास अनुमती देईल. शेवटी, मी तुम्हाला हे दाखवून देईन की आपल्या विजेटची ऑफर देण्यातील सर्वोत्कृष्ट वस्तू दर्शविणारी विजेट पूर्वावलोकन प्रतिमा तयार करुन आपण लोकांना आपले विजेट वापरण्यास प्रोत्साहित कसे करू शकता.


हेही वाचा: फोल्डेबल डिव्हाइससाठी विकसित करणे: आपल्याला काय माहित असणे आवश्यक आहे

Android साठी विजेट काय आहेत?

अनुप्रयोग विजेट एक हलका, लहान अनुप्रयोग आहे जो वापरकर्त्याच्या होमस्क्रीनवर राहतो.

Android साठी विजेट सामग्रीची श्रेणी प्रदान करू शकतात परंतु सामान्यत: खालीलपैकी एका श्रेणीत येतात:

  • माहिती विजेट. हे एक स्क्रोल न करता विजेट आहे जे आजच्या हवामान अंदाज किंवा तारीख आणि वेळ यासारखी काही माहिती दर्शविते.
  • संग्रह विजेट. हे एक स्क्रोल करण्यायोग्य विजेट आहे जे संबंधित डेटाचा एक संचा दर्शवितो, एक सूची दृश्य, ग्रिडव्यू, स्टॅकव्यू किंवा apडॉप्टरव्यूफ्लिपर म्हणून स्वरूपित. संग्रह विजेट्स सहसा डेटा स्रोताद्वारे डेटाबेस किंवा अ‍ॅरेद्वारे समर्थित असतात.
  • विजेट्स नियंत्रित करा. हे विजेट रिमोट कंट्रोल म्हणून कार्य करतात जे वापरकर्त्यांना आपल्या अनुप्रयोगासह संवाद साधण्यास सक्षम करते, विना तो अग्रभागी आणण्यासाठी येत. मीडिया प्ले करणारे अ‍ॅप्स, जसे की पॉडकास्ट किंवा संगीत, कडे बर्‍याचदा नियंत्रण विजेट असतात जे वापरकर्त्यास त्यांच्या होमस्क्रीनवरून थेट प्ले, विराम द्या आणि वगळण्यासाठी क्रिया करण्यास परवानगी देतात.
  • संकरित विजेट. कधीकधी आपण एकाधिक श्रेणींमधील घटक एकत्रित करून एक चांगला वापरकर्ता अनुभव देण्यात सक्षम होऊ शकता. उदाहरणार्थ, आपण संगीत अनुप्रयोगासाठी नियंत्रण विजेट विकसित करत असल्यास आपण प्ले, विराम द्या आणि वगळा नियंत्रणे प्रदान करू शकता परंतु आपण गाण्याचे शीर्षक आणि कलाकार यासारखी काही माहिती प्रदर्शित करण्याचे देखील ठरवू शकता. आपण मिसळणे आणि जुळण्याचे ठरविल्यास, दूर होऊ नका! विजेट्स थोड्या वेळेवर, संबंधित माहितीमध्ये किंवा सामान्यत: वापरल्या जाणार्‍या काही वैशिष्ट्यांमध्ये सहज प्रवेश प्रदान करतात तेव्हा सर्वोत्कृष्ट वापरकर्ता अनुभव देतात. आपल्या संकरित विजेट्सचे वजन कमी ठेवण्यात मदत करण्यासाठी, आपण आपल्या विजेटची प्राथमिक श्रेणी ओळखून त्या श्रेणीनुसार विकसित करणे आणि मग विजेटच्या दुय्यम श्रेणीमधून काही घटक जोडा.

माझ्या प्रोजेक्टला खरोखर अनुप्रयोग विजेटची आवश्यकता आहे?

आपण आपल्या Android प्रकल्पात अनुप्रयोग विजेट जोडण्याचा विचार करण्याची अनेक कारणे आहेत.


Android साठी विजेट्स वापरकर्त्याचा अनुभव सुधारू शकतात

सामान्य नियम म्हणून, एखादी कार्य पूर्ण करण्यासाठी नेव्हिगेशनल चरणांची आवश्यकता कमी असते, वापरकर्त्याचा अनुभव चांगला असतो.

अनुप्रयोग विजेट प्रदान करून, आपण आपल्या अ‍ॅपच्या सर्वाधिक वापरल्या जाणार्‍या प्रवाहांमधून एकाधिक नॅव्हिगेशनल चरण काढू शकता. सर्वोत्कृष्ट परिस्थितीत, आपले वापरकर्ते त्यांच्या होमस्क्रीनवर फक्त दृष्टीक्षेपाने आवश्यक माहिती मिळवू शकतील किंवा आपल्या नियंत्रण विजेटमधील बटण टॅप करून इच्छित कार्य करू शकतील.

अनुप्रयोग शॉर्टकटपेक्षा अधिक सामर्थ्यवान

अ‍ॅप विजेट अ‍ॅप्लिकेशन शॉर्टकट प्रमाणेच संबंधित अनुप्रयोगातील उच्च स्तरीय लाँच करून ऑन-क्लिक इव्हेंटला प्रतिसाद देतात. तथापि, विजेट्स अनुप्रयोगांमधील विशिष्ट क्रियाकलापांवर थेट प्रवेश देखील प्रदान करू शकतात, उदाहरणार्थ विजेटच्या नवीन प्राप्त झालेल्या अधिसूचनावर टॅप करणे कदाचित आधीपासून उघडलेल्या संबद्ध अ‍ॅपला लाँच करू शकेल.

आपल्या विजेटच्या लेआउटमध्ये एकाधिक दुवे एम्बेड करून, आपण आपल्या सर्वात सामान्य-वापरल्या जाणार्‍या प्रवाहांमधून आणखी नॅव्हिगेशनल चरण काढून आपल्या अॅपच्या सर्व महत्त्वपूर्ण क्रियाकलापांवर एक टॅप प्रवेश प्रदान करू शकता.

आपल्या विजेटच्या लेआउटमध्ये एकाधिक दुवे एम्बेड करून आपण आपल्या अ‍ॅपच्या सर्व महत्वाच्या क्रियाकलापांना एक-टॅप प्रवेश प्रदान करू शकता.

लक्षात ठेवा की विजेट्स केवळ ऑन-क्लिक इव्हेंटला प्रतिसाद देतात, जे वापरकर्त्यांना होमस्क्रीनवर स्वॅप करत असताना आपल्या विजेटसह चुकून संवाद साधण्यापासून प्रतिबंधित करतात. फक्त एक अपवाद असा आहे की जेव्हा वापरकर्ता आपले विजेट त्यांच्या होमस्क्रीनच्या काढण्याच्या कृतीकडे ड्रॅग करून हटविण्याचा प्रयत्न करीत असेल, तेव्हा या परिस्थितीत आपले विजेट उभ्या स्वाइप जेश्चरला प्रतिसाद देईल.

हा संवाद Android सिस्टमद्वारे व्यवस्थापित केला गेला आहे, म्हणून आपणास आपल्या विजेटमध्ये अनुलंब स्वाइप समर्थन व्यक्तिचलितपणे अंमलात आणण्याची चिंता करण्याची आवश्यकता नाही.

दीर्घकालीन प्रतिबद्धता चालविण्यासाठी Android विजेट तयार करा

आपला अ‍ॅप डाउनलोड करण्यासाठी लोकांना विश्वास ठेवणे ही एक यशस्वी Android अनुप्रयोग तयार करण्याची पहिली पायरी आहे. शक्यता अशी आहे की आपण आपला स्वतःचा अँड्रॉइड स्मार्टफोन किंवा टॅब्लेट हस्तगत केला आणि अ‍ॅप ड्रॉवर स्वाइप केल्यास आपण दिवस, आठवडे किंवा संभाव्यतः अगदी महिन्यांत न वापरलेले एकाधिक अ‍ॅप्स आपल्याला सापडतील!

हेही वाचा:Android SDK साठी फेसबुकसह प्रारंभ करणे

एकदा आपला अ‍ॅप वापरकर्त्याच्या डिव्हाइसवर यशस्वीरित्या स्थापित झाल्यावर आपणास त्यास गुंतवून ठेवण्यासाठी आणि आपल्या अ‍ॅपचा आनंद घेण्यासाठी कठोर परिश्रम करण्याची आवश्यकता आहे. आपल्या अॅपला होमस्क्रीनवर उपस्थिती देणे दीर्घकालीन गुंतवणूकीस चालविण्यास मदत करणारे एक शक्तिशाली साधन असू शकते, कारण आपला अनुप्रयोग अस्तित्वात आहे ही सतत स्मरणपत्र आहे!

एक चांगले डिझाइन केलेले विजेट आपल्या अ‍ॅपसाठी चालू असलेली जाहिरात देखील देऊ शकते. प्रत्येक वेळी जेव्हा वापरकर्त्याने त्यांच्या होमस्क्रीनवर नजर टाकली, तेव्हा आपल्या विजेटमध्ये आपल्या अ‍ॅपच्या सर्व मनोरंजक आणि उपयुक्त सामग्रीसह त्यांना सादर करुन आपल्या अ‍ॅपसह पुन्हा व्यस्त होण्यासाठी त्यांना सक्रियपणे प्रोत्साहित करण्याची संधी आहे.

संग्रह अ‍ॅप विजेट तयार करत आहे

या ट्यूटोरियल मध्ये, आम्ही एक संग्रह विजेट तयार करीत आहोत जे rolरे स्क्रोल करण्यायोग्य सूची दृश्य म्हणून दर्शविते.

अ‍ॅप विजेट लाइफसायकलचा मागोवा घेण्यात मदत करण्यासाठी, हे विजेट वेगवेगळ्या लाइफसायकलच्या स्थितीत जात असताना विविध टोस्ट देखील ट्रिगर करेल. या ट्यूटोरियलच्या शेवटी, आम्ही आमच्या विजेटला सानुकूल पूर्वावलोकन प्रतिमेसह वाढवत आहोत जी Android च्या विजेट पिकरमध्ये आणि कॉन्फिगरेशन अ‍ॅक्टिव्हिलीमध्ये प्रदर्शित केली जाईल, जे वापरकर्त्यांना त्यांच्या होमस्क्रीनवर ठेवण्यापूर्वी विजेट सानुकूलित करण्यास अनुमती देईल.

आपल्या आवडीच्या सेटिंग्जसह एक नवीन Android प्रकल्प तयार करा आणि चला प्रारंभ करूया!

आपल्या विजेटचा लेआउट तयार करत आहे

प्रारंभ करण्यासाठी, विजेटचा वापरकर्ता इंटरफेस (यूआय) परिभाषित करू.

अनुप्रयोग विजेट्स प्रक्रियेत दर्शविले जातात बाहेर आपला अनुप्रयोग, ज्यामुळे आपण केवळ रिमोटव्ह्यूजद्वारे समर्थित लेआउट आणि दृश्य वापरू शकता.

आपला लेआउट तयार करताना, आपण पुढील गोष्टींवर प्रतिबंधित आहात:

  • अ‍ॅनालॉगलॉक
  • बटण
  • क्रोनोमीटर
  • फ्रेमलीआउट
  • ग्रिडलॉउट
  • इमेजबटन
  • इमेज व्ह्यू
  • लाइनरलायट
  • प्रोग्रेसबार
  • रिलेटिव्ह लेआउट
  • मजकूर दृश्य
  • व्ह्यूस्टब
  • अ‍ॅडॉप्टरव्यूफ्लिपर
  • ग्रिडव्यू
  • यादी पहा
  • स्टॅकव्यू
  • व्ह्यूफ्लिपर

लक्षात ठेवा की वरील वर्ग आणि दृश्यांचे उपवर्ग आहेत नाही समर्थित.

List_widget.xml नावाची एक नवीन लेआउट संसाधन फाइल तयार करा. आम्ही एखादा लिस्ट व्ह्यू वापरुन आमचा डेटा प्रदर्शित करत असल्याने हा लेआउट मुख्यत: ए साठी कंटेनर म्हणून काम करतो घटक:

संग्रह विजेट पॉप्युलेट करीत आहे

पुढे, आमच्या लिस्ट व्ह्यू साठी आम्हाला डेटा प्रदाता तयार करण्याची आवश्यकता आहे. डेटाप्रोवाइडर.जावा नावाचा एक नवीन जावा वर्ग तयार करा आणि पुढील जोडा:

android.content.Context आयात करा; android.content.Inttent आयात करा; आयात करा android.widget.RemoteViews; आयात करा android.widget.RemoteViewsS सर्विस; java.util.ArarayList आयात करा; java.util.List आयात करा; स्थिर android.R.id.text1 आयात करा; स्थिर android.R.layout.simple_list_item_1 आयात करा; पब्लिक क्लास डेटाप्रोवाइडर रिमोट व्ह्यूज सर्व्हिस. रीमोटव्यू फॅक्टरी {यादी लागू करते मायलिस्ट व्ह्यू = नवीन अ‍ॅरेलिस्ट <> (); संदर्भ mContext = शून्य; सार्वजनिक डेटाप्रोइडर (संदर्भ संदर्भ, हेतू हेतू) {mContext = संदर्भ; Re @ ओव्हरराइड पब्लिक शून्य ऑनक्रिएट () {initData (); Ata @DataSetChanged () ver initData () वर ओव्हरराइड पब्लिक रिक्त Est @ ओव्हरराइड पब्लिक रिक्त ऑन डेट्रॉय () {} @ ओव्हरराइड पब्लिक इन्ट गेटकाउंट () my माईलिस्ट व्ह्यू.साईज () परत करा; } @ सार्वजनिक रिमोट व्ह्यूज ओव्हरराइड गेट व्ह्यू व्हॅट (इंट पोजीशन) {रिमोट व्ह्यूज व्ह्यू = नवीन रिमोट व्ह्यूज (एमकॉन्टेक्स्ट.गेटपॅकएजेनेम)), सिंपल_लिस्ट_टेम_1); view.setTextViewText (मजकूर 1, myListView.get (स्थिती)); रिटर्न व्ह्यू } @ सार्वजनिक रिमोट व्ह्यूओवरराईड करालूटिंग व्ह्यू () ull रिटर्न शून्य; } @ ओव्हरराइड पब्लिक इन्ट गेट व्ह्यू व्ह्यूटाइपकाउंट () {रिटर्न 1; } @ ओव्हरराइड पब्लिक लाँग गेट आयटम आयडी (इंट पोजीशन) {रिटर्न पोजीशन; } @ ओव्हरराइड पब्लिक बुलियन हॅस्टटेबल आयडीएस () true खरे परत; } खाजगी शून्य initData () {मायलिस्ट व्ह्यूकॉलीयर (); (इंट्रा आय = 1; मी <= 15; आय ++) {मायलिस्ट व्ह्यू.एडडी ("लिस्टव्यू आयटम" + i); }}}

अ‍ॅप विजेटप्रोवाइडर: आपले विजेट कॉन्फिगर करीत आहे

Android विजेट तयार करण्यासाठी, आपल्याला बर्‍याच फायली तयार करण्याची आवश्यकता आहे.

आमची पहिली विजेट-विशिष्ट फाइल एक अ‍ॅपविजेटप्रोइडर आहे, जी एक ब्रॉडकास्ट रिसीव्हर आहे जिथे आपण विविध विजेट लाइफसायकल पद्धती परिभाषित कराल, जसे की आपले विजेट प्रथम तयार होते तेव्हा म्हणतात की पद्धत आणि ती विजेट अखेरीस हटविली जाते तेव्हा कॉल केलेली पद्धत.

कलेक्शनविजेट नावाचा एक नवीन जावा वर्ग (फाईल> नवीन> जावा वर्ग) तयार करा.

प्रारंभ करण्यासाठी, सर्व विजेट प्रदाता फायली अ‍ॅपविजेटप्रोइडर वर्गातून वाढविणे आवश्यक आहे. त्यानंतर आम्हाला लिस्ट_विजेट.एक्सएमएल लेआउट रिसोर्स फाईल रिमोट व्ह्यूज ऑब्जेक्टमध्ये लोड करणे आवश्यक आहे आणि अ‍ॅपप्लिकेशन मॅनेजरला अद्यतनित रिमोट व्ह्यूज ऑब्जेक्टबद्दल माहिती द्या:

पब्लिक क्लास कलेक्शनविजेटमध्ये अ‍ॅपविजेटप्रोइडर {स्टॅटिक शून्य अपडेट अ‍ॅपविजेट (संदर्भ संदर्भ, अ‍ॅप विजेट मॅनेजर Wप्लिकेशनमॅनेजर, appप्लिकेशन विजेट) {// रिमोट व्ह्यूज ऑब्जेक्टची स्थापना करा // रिमोट व्ह्यूज व्ह्यूज (संदर्भ.झेटपॅकवॅज.आऊट),); setRemoteAdapter (संदर्भ, दृश्ये); // अ‍ॅपविजेटमेनेजर अ‍ॅप्लिकेशन विजेट अद्यतनित करा अशी विनंती // अ‍ॅपविजेडमॅनेज .अपडेट अ‍ॅप विजेट (अ‍ॅपविजेट आयडी, दृश्ये); }

अ‍ॅडॉप्टर तयार करा

आम्ही आमचा डेटा एक यादी व्ह्यूमध्ये प्रदर्शित करत असल्याने आम्हाला आमच्या अ‍ॅपविजेटप्रोइडरमध्ये सेट रिमोट अ‍ॅडॅप्टर () पद्धत परिभाषित करण्याची आवश्यकता आहे. सेट रिमोटॅडॉप्टर () AbsListView.setRemoteViewsAdapter () कॉल करण्यासाठी समतुल्य आहे परंतु applicationप्लिकेशन विजेटमध्ये वापरण्यासाठी डिझाइन केलेले आहे.

या पद्धतीमध्ये, आम्हाला अ‍ॅडॉप्टर व्ह्यू (आर. आयडब्ल्यूडजेट_लिस्ट) आणि आमच्या रिमोट व्ह्यूज अ‍ॅडॉप्टरला अखेरीस डेटा प्रदान करणार्‍या सेवेचा हेतू आयडी परिभाषित करण्याची आवश्यकता आहे - आम्ही लवकरच हा विजेटसेवा वर्ग तयार करणार आहोत.

प्रायव्हेट स्टॅटिक शून्य सेट रिमोट अ‍ॅडॉप्टर (संदर्भ संदर्भ, @ नॉनल अंतिम रिमोट व्ह्यू दृश्ये) {व्ह्यूज.सेटRemoteAdapter (R.id.widget_list, नवीन हेतू (संदर्भ, विजेटसेवा. क्लास)); }}

विजेट लाइफसायकल पद्धती परिभाषित करणे

आमच्या अ‍ॅप विजेटप्रोइडरमध्ये आम्हाला खालील विजेट लाइफसायकल पद्धती देखील परिभाषित करण्याची आवश्यकता आहे:

ऑनUpdate सह नवीन सामग्री पुनर्प्राप्त करत आहे

ऑन -डेट () विजेट लाइफसायकल पद्धत नवीन माहितीसह आपले विजेटचे दृश्य अद्यतनित करण्यासाठी जबाबदार आहे.

ही पद्धत प्रत्येक वेळी म्हणतात:

  • वापरकर्ता एक क्रिया करतो जी स्वयंचलितरित्या ऑन-अपडेट () पद्धत चालू करते.
  • अनुप्रयोगाचा निर्दिष्ट अद्यतन मध्यांतर संपला आहे.
  • वापरकर्ता त्यांच्या मुख्यस्क्रीनवर या विजेटची नवीन घटना ठेवतो.
  • एक ACTION_APPWIDGET_RESTORED प्रसारण हेतू अ‍ॅपविजेटप्रोवाइडरला पाठविला गेला आहे. विजेट बॅकअपमधून कधीही पुनर्संचयित केला असल्यास या प्रसारणाचा हेतू ट्रिगर केला जातो.

हे असे आहे जेथे आपण आपले विजेट वापरू नये अशा कोणत्याही इव्हेंट हँडलरची नोंदणी कराल.

Android विजेट अद्यतनित करताना, हे लक्षात ठेवणे आवश्यक आहे की वापरकर्ते समान विजेटची अनेक घटना तयार करु शकतात. उदाहरणार्थ, कदाचित आपले विजेट सानुकूल करण्यायोग्य असेल आणि वापरकर्ता बर्‍याच “आवृत्त्या” तयार करण्याचा निर्णय घेईल ज्या भिन्न माहिती प्रदर्शित करतात किंवा अनन्य कार्यक्षमतेत प्रवेश प्रदान करतात.

जेव्हा आपण अद्यतन () वर कॉल करता तेव्हा आपण या विजेटचे प्रत्येक उदाहरण अद्यतनित करत आहात की नाही हे निर्दिष्ट करणे आवश्यक आहे, किंवा फक्त विशिष्ट प्रसंग. आपण प्रत्येक प्रसंगी अद्यतनित करू इच्छित असल्यास आपण अ‍ॅपविजेट आयडीएस वापरू शकता जे आयडीचा एक अ‍ॅरे आहे जो डिव्हाइसवरील प्रत्येक घटकास ओळखतो.

खालील स्निपेटमध्ये, मी प्रत्येक घटना अद्यतनित करीत आहे:

@ ओव्हरराइड पब्लिक रिक्त ऑनऑप्टेट (संदर्भ संदर्भ, Wप्लिकेशन विजेट मॅनेजर appप्लिकेशन विजेट मॅनेजर, (एपविजेट आयड्स) {फॉर (इंटीडब्ल्यूजेट आयडीः Wप विजेट आयड्स) {// या विजेटची सर्व घटना अद्यतनित करा // अपडेड विजेट (संदर्भ, अ‍ॅप विजेटमॅनेजर, अ‍ॅपविजेडइडी); . सुपर.ऑन अपडेट (संदर्भ, अ‍ॅप विजेटमेनेजर, अ‍ॅपविजेडइडीएस); }

लक्षात ठेवा की कोड सरळ ठेवण्यास मदत करण्यासाठी, ही ऑन-अपडेट () पद्धत सध्या विजेटमध्ये कोणतेही बदल करीत नाही.

ऑन सक्षम: प्रारंभिक सेटअप करत आहे

ऑन एनेबल () लाइफसायकल पद्धतीस ACTION_APPWIDGET_ENABLED च्या प्रतिसादात म्हटले जाते, जे आपल्या विजेटचे उदाहरण जेव्हा होमस्क्रीनवर जोडले जाते तेव्हा पाठविले जाते पहिला वेळ जर वापरकर्त्याने आपल्या विजेटची दोन उदाहरणे तयार केली तर प्रथम सक्षम (ऑन) (उदाहरणार्थ) वर कॉल केला जाईल, परंतु नाही दुसर्‍यासाठी.

ऑनएनेबल () लाइफसायकल पद्धत आहे जेथे आपण आपल्या विजेटच्या सर्व घटनांसाठी आवश्यक असलेले कोणतेही सेटअप केले पाहिजे, जसे की आपल्या विजेटची माहिती फीड करेल डेटाबेस तयार करणे.

मी एक टोस्ट प्रदर्शित करणार आहे, जेणेकरून आपण या लाइफसायकल पद्धतीने कधी म्हटले जाते ते पाहू शकता:

@ ओव्हरराइड पब्लिक रिक्त ऑनएनेबल (संदर्भ संदर्भ) ast टोस्ट.मेकटेक्स्ट (संदर्भ, "ऑनएबल म्हणतात", टोस्ट. एलएनजीटीएच_लाँग) .शो (); }

लक्षात ठेवा की जर वापरकर्त्याने आपल्या विजेटची सर्व उदाहरणे हटविली आणि नंतर एक नवीन घटना तयार केली, तर हे प्रथम उदाहरण म्हणून वर्गीकृत केले जाईल आणि ऑन-सक्षम () लाइफसायकल पद्धत पुन्हा कॉल केली जाईल.

ऑन अक्षम केलेल्यासह साफसफाई करीत आहे

ऑन डिसएबल्ड () पद्धत ACTION_APPWIDGET_DISABLED च्या प्रतिसादात म्हणतात, जी वापरकर्त्याने डिलीट केल्यावर ट्रिगर केली जाते शेवटचा आपल्या विजेट च्या घटना.

ही विजेट लाइफसायकल पद्धत आपण ऑन-सक्षम () पद्धतीत तयार केलेली कोणतीही संसाधने साफ केली पाहिजे, उदाहरणार्थ आपण ऑन-सक्षम () मध्ये तयार केलेला डेटाबेस हटविणे.

आमचा कोड सरळ ठेवण्यात मदत करण्यासाठी, प्रत्येक वेळी ही पद्धत चालू असताना मी फक्त टोस्ट प्रदर्शित करीत आहे:

@ ओव्हरराइड पब्लिक रिकामा ऑन अक्षम (संदर्भ संदर्भ) ast टोस्ट.मेकटेक्स्ट (संदर्भ, "ऑन डिसेबल म्हणतात", टोस्ट. एलएनजीटीएच_लाँग) .शो (); }

पूर्ण केलेले अ‍ॅपविजेटप्रोइडर

आपल्या संग्रह विजेट फाईलमध्ये आता यासारखे काहीतरी दिसले पाहिजे:

android.appwidget.appWidgetManager आयात करा; android.appwidget.appWidgetProvider आयात करा; android.content.Context आयात करा; androidx.annotation.NonNull आयात करा; android.content.Inttent आयात करा; आयात करा android.widget.RemoteViews; android.widget.Toast आयात करा; // Wपविजेटप्रोइडर वर्गातून वाढवा // सार्वजनिक वर्ग संग्रहविजेटमध्ये अ‍ॅपविड्जेटप्रोइडर s स्टॅटिक शून्य अद्यतन अ‍ॅपविजेट (संदर्भ संदर्भ, अ‍ॅप विजेट मॅनेजर Wपविजेटमॅनेजर, इंट एपविजेट आयडी) {// रिमोट व्ह्यूज ऑब्जेक्ट // रिमोट व्ह्यू व्ह्यू व्ह्यूज (नवीन संदर्भ) मध्ये लेआउट स्त्रोत फाइल लोड करा. getPackageName (), R.layout.list_widget); setRemoteAdapter (संदर्भ, दृश्ये); // रिमोट व्ह्यूज ऑब्जेक्ट // अ‍ॅपविजेटमॅनेजर .अपडेटअॅपविजेट (अ‍ॅपविजेट आयडी, दृश्ये) बद्दल अ‍ॅपविजेटमॅनेजरला माहिती द्या; Int @ ओव्हरराइड पब्लिक रिक्त ऑनऑपडेट (संदर्भ संदर्भ, ,प विजेट मॅनेजर Wप विजेट मॅनेजर, appप्लिकेशन विजेट आयडीएस) {int (app एपविजेट आयड: idप्लिकेशन विजेट्स) {अपडेड एप्लिकेशन (संदर्भ, अ‍ॅपविजेटमॅनेजर, अ‍ॅप विजेट आयडी); . सुपर.ऑन अपडेट (संदर्भ, अ‍ॅप विजेटमेनेजर, अ‍ॅपविजेडइडीएस); N @ ओव्हरराइड पब्लिक रिक्त ऑनएनेबल (संदर्भ संदर्भ) ast टोस्ट.मेकटेक्स्ट (संदर्भ, "ऑनएबल म्हणतात", टोस्ट. एलएनजीटीएच_लाँग) .शो (); Is @ ओव्हरराइड पब्लिक रिकामा ऑन अक्षम (संदर्भ संदर्भ) ast टोस्ट.मेकटेक्स्ट (संदर्भ, "ऑन डिस्एबल्ड म्हणतात", टोस्ट. एलएनजीटीएच_लाँग) .शो (); } खाजगी स्थिर शून्य सेट रिमोट अ‍ॅडॉप्टर (संदर्भ संदर्भ, @ नॉनल अंतिम अंतिम रिमोट व्ह्यू दृश्ये) {दृश्य.setRemoteAdapter (R.id.widget_list, नवीन हेतू (संदर्भ, विजेटसेवा.सी.सी.)); }}

अ‍ॅपविजेटप्रोइडरइन्फो फाईल

आपल्या अ‍ॅप्लिकेशन विजेटसाठी अ‍ॅपविजेटप्रोइडरइन्फो फाईल देखील आवश्यक आहे, जी आपल्या विजेटच्या किमान परिमाणांसह आणि ती किती वारंवार अद्यतनित केली जावी यासह अनेक महत्त्वपूर्ण गुणधर्मांची व्याख्या करते.

अ‍ॅपविजेटप्रोइडरइन्फो फाईल आपल्या प्रकल्पाच्या रेस / एक्सएमएल फोल्डरमध्ये संग्रहित आहे.

आपल्या प्रकल्पात आधीपासून हे फोल्डर नसल्यास आपल्याला ते तयार करण्याची आवश्यकता असेल:

  • आपल्या प्रोजेक्टच्या रेस फोल्डरमध्ये कंट्रोल-क्लिक करा.
  • नवीन> Android संसाधन निर्देशिका निवडा.
  • त्यानंतरच्या विंडोमध्ये, संसाधन प्रकार ड्रॉपडाउन उघडा आणि एक्सएमएल निवडा.
  • निर्देशिका नाव स्वयंचलितपणे xML वर अद्यतनित केले जावे, परंतु ते तसे नसल्यास आपणास ते व्यक्तिचलितपणे बदलण्याची आवश्यकता आहे.
  • ओके क्लिक करा.

पुढे, कलेक्शन_विजेट_इन्फो फाईल तयार करा, जी आम्ही आमची अ‍ॅपविजेटप्रोव्हिडरइन्फो म्हणून वापरत आहोत:

  • आपल्या प्रोजेक्टच्या एक्सएमएल फोल्डरवर कंट्रोल-क्लिक करा.
  • नवीन> एक्सएमएल स्त्रोत फाइल निवडा.
  • या फाईलचे नाव संग्रह_विजेट_इन्फो.
  • ओके क्लिक करा.

आमच्या अ‍ॅपविजेटप्रोइडरइन्फो फाईलमध्ये आम्हाला खालील गुणधर्म परिभाषित करण्याची आवश्यकता आहे:

1. Android: पूर्वावलोकन

हे ड्रॉएबल आहे जे डिव्हाइसच्या विजेट पिकरमध्ये आपल्या अनुप्रयोग विजेटचे प्रतिनिधित्व करते.

आपण प्रीव्ह्यू प्रतिमा प्रदान न केल्यास, त्याऐवजी Android आपल्या अनुप्रयोगाचे चिन्ह वापरेल. वापरकर्त्यांना विजेट निवडकातून आपले विजेट निवडण्यासाठी प्रोत्साहित करण्यासाठी आपण एक ड्रॉएबल प्रदान केले पाहिजे जे आपल्या विजेट वापरकर्त्याच्या होमस्क्रीनवर एकदाच योग्यरित्या कॉन्फिगर केले की ते कसे दिसेल हे दर्शवते.

पूर्वावलोकन प्रतिमा तयार करण्याचा सर्वात सोपा मार्ग म्हणजे अँड्रॉइड इम्युलेटरमध्ये समाविष्ट केलेला विजेट पूर्वावलोकन अनुप्रयोग वापरणे. हे अ‍ॅप आपल्याला आपले विजेट कॉन्फिगर करते आणि नंतर एक प्रतिमा तयार करू देते, जे आपण नंतर आपल्या Android प्रकल्पात वापरू शकता.

एकदा आम्ही आमची विजेट तयार केली की आम्ही ही प्रतिमा तयार करीत आहोत, म्हणून आता मी स्वयंचलितपणे व्युत्पन्न केलेले मिमॅपॅप / आयसी_लँचर संसाधन तात्पुरते पूर्वावलोकन प्रतिमेच्या रूपात वापरत आहे.

2. Android: विजेट कॅटेगरी

अ‍ॅप्लिकेशन विजेट्स अ‍ॅप विजेट होस्टच्या आत ठेवणे आवश्यक आहे, जे सहसा स्टॉक अँड्रॉइड होमस्क्रीन असते, परंतु ते एव्हिए लाँचर किंवा नोव्हा लाँचरसारखे तृतीय पक्ष लाँचर देखील असू शकतात.

एपीआय स्तर 17 आणि 20 दरम्यान, होमस्क्रीनवर अनुप्रयोग विजेट्स ठेवणे शक्य होते किंवा लॉकस्क्रीन, परंतु लॉकस्क्रीन समर्थन API स्तर 21 मध्ये नापसंत करण्यात आले.

आपला अ‍ॅप विजेट होमस्क्रीन, लॉकस्क्रीन (ज्याला अँड्रॉईडने “कीगार्ड” म्हणून संदर्भित केले आहे) किंवा दोन्ही, अ‍ॅन्ड्रॉइड: विजेट कॅटेगरी गुणधर्म वापरुन ठेवणे शक्य आहे की नाही ते निर्दिष्ट करू शकता. अँड्रॉइडच्या अगदी अलीकडील आवृत्त्यांमध्ये लॉकस्क्रीनवर विजेट्स ठेवणे शक्य नसल्यामुळे आम्ही फक्त होमस्क्रीनला लक्ष्य करीत आहोत.

वापरकर्त्याची गोपनीयता जतन करण्यासाठी, जेव्हा आपले लॉकस्क्रीनवर असते तेव्हा आपले विजेट कोणतीही संवेदनशील किंवा खाजगी माहिती प्रदर्शित करू नये.

आपण वापरकर्त्यांना आपले विजेट लॉकस्क्रीनवर ठेवण्याचा पर्याय दिला तर वापरकर्त्याच्या डिव्हाइसकडे पाहणा gla्या प्रत्येकास आपले विजेट आणि तिची सर्व सामग्री संभाव्यतः दिसू शकेल. वापरकर्त्याची गोपनीयता जतन करण्यात मदत करण्यासाठी, आपले विजेट लॉकस्क्रीनवर असते तेव्हा कोणतीही संवेदनशील किंवा खाजगी माहिती प्रदर्शित करू नये. आपल्या विजेटमध्ये वैयक्तिक डेटा नसल्यास आपण स्वतंत्र होमस्क्रीन आणि लॉकस्क्रीन लेआउट प्रदान करण्याचा विचार करू शकता.

3. Android: प्रारंभिक लेआउट

ही आपली लेआउट संसाधन फाइल आहे जी आपले विजेट होमस्क्रीनवर ठेवल्यावर वापरावे, जे आमच्या प्रोजेक्टसाठी list_widget.xML आहे.

And. android: resizeMode = "क्षैतिज | अनुलंब"

Android: रीसाइजमोड विशेषता आपल्याला आपल्या विजेटचे क्षैतिज, अनुलंब किंवा दोन्ही अक्षांद्वारे आकार बदलू शकते की नाही हे निर्दिष्ट करू देते.

विविध स्क्रीनवर आपले विजेट प्रदर्शन आणि कार्ये अचूकपणे सुनिश्चित करण्यासाठी आपण आपल्या विजेटचे क्षैतिजरित्या आकार बदलू देण्याची शिफारस केली जाते. आणि अनुलंब, जोपर्यंत आपल्याकडे असे विशिष्ट कारण नाही.

And. Android: minHight आणि android: minWidth

आपले विजेट आकार बदलण्यायोग्य असल्यास, नंतर आपणास हे निश्चित करणे आवश्यक आहे की वापरकर्त्याने आपले विजेट ज्या ठिकाणी निरुपयोगी होईल अशा ठिकाणी संकुचित होणार नाही. जेव्हा वापरकर्त्याद्वारे आकार बदलला जात असेल तेव्हा आपला अॅप संकुचित होईल त्यास परिभाषित करण्यासाठी आपण minHeight आणि minWidth विशेषता वापरू शकता.

ही मूल्ये देखील आपल्या विजेटच्या आरंभिक आकाराचे प्रतिनिधित्व करतात, म्हणूनच आपले विजेट आकार बदलू न शकल्यास minHight आणि minWidth विजेटचे कायम आकार बदलण्यासाठी परिभाषित करतात.

6. android: updatePeriodMillis

अ‍ॅपविजेटप्रोइडरइन्फो असेही आहे जेथे आपण आपले विजेट कितीवेळा नवीन माहितीसाठी विनंती करावी.

सर्वात छोटा समर्थित अद्यतन अंतराल दर 1800000 मिलीसेकंद (30 मिनिटांनी) एकदाच आहे. जरी आपण लहान अद्यतन मध्यांतर जाहीर केले, तरीही आपले विजेट केवळ अर्ध्या तासाने एकदा अद्यतनित होईल.

आपल्याला नवीनतम माहिती शक्य तितक्या लवकर प्रदर्शित करण्याची इच्छा असू शकते, सिस्टम होईल नवीन माहिती पुनर्प्राप्त करण्यासाठी झोपण्याच्या डिव्हाइसला जागृत करा. डिव्हाइसच्या बॅटरीमधून वारंवार अद्यतने जळतात, विशेषत: ज्या काळात रात्रभर डिव्हाइसच्या महत्त्वपूर्ण कालावधीसाठी डिव्हाइस निष्क्रिय ठेवले जाते. सर्वोत्तम शक्य वापरकर्ता अनुभव प्रदान करणे म्हणजे बॅटरीचा वापर मर्यादित करणे आणि वाजवी मुदतीत नवीन माहिती प्रदान करणे दरम्यान संतुलन राखणे.

आपले विजेट कोणत्या प्रकारची सामग्री प्रदर्शित करते हे आपण देखील विचारात घेतले पाहिजे.

Android साठी आपले विजेट्स कोणत्या प्रकारची सामग्री प्रदर्शित करतात हे देखील आपण विचारात घेतले पाहिजे. उदाहरणार्थ, हवामान विजेटने दररोज एकदाच अद्ययावत अंदाज पुनर्प्राप्त करण्याची आवश्यकता असू शकते, परंतु ब्रेकिंग न्यूज दाखविणार्‍या अ‍ॅपला अधिक वारंवार अद्यतनित करणे आवश्यक असते.

हे परिपूर्ण शिल्लक शोधण्यासाठी आपल्याला आपल्या विजेटची अद्ययावत वारंवारतेची चाचणी घेण्याची आणि बॅटरीच्या जीवनावरील परिणामाची आणि आपल्या विजेटमधील सामग्रीची वेळेची मोजमाप करण्याची आवश्यकता असू शकते. आपल्याकडे परीक्षकांचा इच्छुक गट असल्यास, काही अद्यतनांची वारंवारता इतरांपेक्षा अधिक सकारात्मकपणे प्राप्त केली जातात की नाही हे पाहण्यासाठी आपण ए / बी चाचणी देखील सेट करू शकता.

अलोसो वाचनः आपल्याला माहित असणे आवश्यक असलेली प्रत्येक गोष्ट AndroidManLive.xML

शेवटी, एकदा आपण परिपूर्ण अद्यतन मध्यांतर ओळखल्यानंतर आपल्या अ‍ॅपचा विकास करताना आणि चाचणी घेताना आपण एक लहान मध्यांतर वापरू शकता. उदाहरणार्थ, आपण आपल्या अ‍ॅपची ऑन -डेट () पद्धत योग्यरित्या ट्रिगर करत असल्याची तपासणी करत असताना आपण सर्वात कमी संभाव्य अद्ययावत वारंवारता (Android: updatePeriodMillis = "1800000 use) वापरू शकता आणि नंतर आपला अ‍ॅप सामान्य लोकांपर्यंत सोडण्यापूर्वी हे मूल्य बदलू शकता.

पूर्ण केलेले अ‍ॅपविजेटप्रोइडरइन्फो

तयार संग्रह_विजेट_इंफो.एक्सएमएल फाइल यासारखे काहीतरी दिसावे:

वापरकर्त्याची होमस्क्रीन गोंधळ करू नका!

होमस्क्रीन कधीही गोंधळलेली दिसत नाही हे सुनिश्चित करण्यासाठी आम्ही आमच्या विजेटमध्ये काही पॅडिंग आणि मार्जिन जोडणार आहोत. आपल्या प्रकल्पात आधीपासूनच dimens.xML फाइल नसल्यास आपल्याला ती तयार करण्याची आवश्यकता आहे:

  • आपल्या प्रोजेक्टचे मूल्ये फोल्डर नियंत्रित करा.
  • नवीन> मूल्ये स्त्रोत फाइल निवडा.
  • या फाईलला डायमेन्स नाव द्या.
  • ओके क्लिक करा.

आपली dimens.xML फाईल उघडा आणि खालील मार्जिन आणि पॅडिंग मूल्ये परिभाषित करा:

10 डीपी 8 डीपी

विजेटवर डेटा पाठवित आहे

पुढे, आम्हाला एक विजेट सेवा तयार करण्याची आवश्यकता आहे, जी आमचा संग्रह डेटा विजेटवर पाठविण्यास जबाबदार असेल.

विजेटसेवा नावाचा एक नवीन जावा वर्ग (नवीन> जावा वर्ग) तयार करा आणि पुढील जोडा:

android.content.Inttent आयात करा; आयात करा android.widget.RemoteViewsS सर्विस; पब्लिक क्लास विजेट सर्व्हिस रिमोटव्ह्यूज सर्व्हिसने विस्तारित करते {@ ओव्हरराईड पब्लिक रिमोट व्ह्यू फॅक्टरी ऑनगेट व्ह्यू फॅक्टरी (हेतू हेतू) new नवीन डेटाप्रोइडर परत (हा, हेतू); }}

मॅनिफेस्टमध्ये आपले विजेट नोंदणी करीत आहे

आम्हाला आता आपल्या प्रकल्पाच्या मॅनिफेस्टमध्ये काही बदल करण्याची आवश्यकता आहे.

प्रारंभ करण्यासाठी, मॅनिफेस्ट उघडा आणि ब्रॉडकास्ट रिसीव्हर म्हणून आपले विजेट नोंदणी करा. आम्हाला Android.appwidget.action.APPWIDGET_UPDATE क्रियेसाठी एक हेतू फिल्टर जोडण्याची देखील आवश्यकता आहे:

पुढे, आपल्याला अ‍ॅप विजेट प्रदाता निर्दिष्ट करण्याची आवश्यकता आहे:

अखेरीस, आम्हाला अशी सेवा घोषित करण्याची आवश्यकता आहे जी आमच्या विजेटवर डेटा पाठवेल, जी या उदाहरणात विजेटसेवा वर्ग आहे. या सेवेसाठी android.permission.BIND_REMOTEVIEWS परवानगी आवश्यक आहे:

आपल्या विजेटची चाचणी घ्या

आपण या ट्यूटोरियलसह अनुसरण करीत असल्यास, आपल्याकडे आता एक संपूर्ण संग्रह विजेट असेल जो वापरकर्त्याच्या होमस्क्रीनवर डेटाचा संच दर्शवेल.

जर हा वास्तविक जीवनाचा अँड्रॉइड प्रकल्प असेल तर आपण सामान्यत: लाइफसायकल पद्धतींचा विस्तार कराल, विशेषत: ऑनपेट () पद्धत, परंतु आपल्या Android डिव्हाइसवर आपण स्थापित आणि चाचणी घेऊ शकणारे विजेट तयार करणे आम्हाला इतकेच आहे:

  • हा प्रकल्प सुसंगत Android स्मार्टफोन, टॅब्लेट किंवा एव्हीडी (Android आभासी डिव्हाइस) वर स्थापित करा.
  • होमस्क्रीनमधील रिक्त विभाग दीर्घ-दाबा आणि सूचित केल्यावर विजेट्स निवडा; हे विजेट निवडक लाँच करते.
  • आपण आत्ताच तयार केलेले अ‍ॅप्लिकेशन विजेट सापडत नाही तोपर्यंत विजेट पिकरमधून स्वाइप करा.
  • हे विजेट आपल्या होमस्क्रीनमध्ये जोडण्यासाठी हे दीर्घ-दाबा.
  • या विशिष्ट विजेटची ही पहिली घटना असल्याने, ऑन सक्षम () पद्धत चालली पाहिजे आणि आपल्याला “ऑन एनेबल” टोस्ट दिसेल.
  • आपल्या विजेटचा आकार बदला. आपण किमान समर्थित आकार सेट केल्यास, आपण या मूल्याच्या आधीचे विजेट संकुचित करू शकत नाही हे तपासा.
  • अपेक्षेनुसार यादीतील दृश्ये स्क्रोल करा.
  • पुढे, आपण आपले विजेट हटवून ऑन-अक्षम () पद्धत तपासली पाहिजे. विजेटवर दीर्घ-दाबा आणि नंतर होम स्क्रीन वरून काढा निवडा. या विशिष्ट विजेटची ही शेवटची उदाहरणे असल्याने, ऑन अक्षम () पद्धत चालली पाहिजे आणि आपल्याला "ऑन डिसएबल" नावाचे टोस्ट दिसेल.

आपल्याला कार्यरत अँड्रॉइड अ‍ॅप्लिकेशन विजेट वितरित करण्याची इतकीच आहे, परंतु अशी काही जोडण्या आहेत जी बर्‍याचदा वापरकर्त्याचा अनुभव सुधारू शकतात. पुढील विभागांमध्ये, आम्ही विजेट निवडकर्त्याकडून हे विजेट निवडण्यासाठी वापरकर्त्यांना प्रोत्साहित करू, विजेटचे सर्वोत्कृष्ट प्रदर्शन करणारी एक पूर्वावलोकन प्रतिमा तयार करुन. आपल्या प्रकल्पात कॉन्फिगरेशन क्रियाकलाप जोडून, ​​पूर्णपणे सानुकूलित विजेट कसे तयार करावे हे देखील मी आपणास दर्शवितो.

Android विजेट पूर्वावलोकन प्रतिमा तयार करत आहे

आपण आपले Android डिव्हाइस पकडले आणि विजेट निवडीद्वारे स्वाइप केल्यास आपणास हे दिसून येईल की प्रत्येक विजेट प्रतिमेद्वारे प्रस्तुत केले जाते, जे सामान्यत: हे दर्शवते की हे विजेट वापरकर्त्याच्या होमस्क्रीनवर एकदा कॉन्फिगर केले की ते कसे दिसेल.

वापरकर्त्यांना आपले विजेट निवडण्यासाठी प्रोत्साहित करण्यासाठी आपण एक पूर्वावलोकन प्रतिमा प्रदान केली पाहिजे जी आपल्या विजेटमध्ये ऑफर केलेली सर्व उपयुक्त माहिती आणि वैशिष्ट्ये हायलाइट करेल.

Android एमुलेटरमध्ये समाविष्ट असलेल्या विजेट पूर्वावलोकन अनुप्रयोगाचा वापर करून आपण द्रुत आणि सहजपणे पूर्वावलोकन प्रतिमा तयार करू शकता.

लक्षात घ्या की विजेट पूर्वावलोकन नवीनतम Android सिस्टम प्रतिमांमध्ये समाविष्ट केलेले नाही, म्हणून आपणास नौगट (एपीआय स्तर 25) किंवा पूर्वीचा वापर करून एव्हीडी तयार करणे आवश्यक आहे:

  • 25 किंवा त्यापेक्षा कमी चालू असलेल्या एव्हीडीवर आपला अनुप्रयोग स्थापित करा.
  • एव्हीडीचा अ‍ॅप ड्रॉवर उघडा आणि विजेट पूर्वावलोकन अॅप लाँच करा.
  • विजेट पूर्वावलोकन सध्या या एव्हीडी वर स्थापित केलेल्या प्रत्येक अनुप्रयोगाची सूची प्रदर्शित करेल; सूचीमधून आपला अर्ज निवडा.

  • आपले विजेट आता रिक्त पार्श्वभूमीवर प्रदर्शित केले जाईल. आपल्या विजेटद्वारे ऑफर केलेले सर्वात चांगले दर्शवित नाही तोपर्यंत आपला आकार बदलून थोडा वेळ घालवा.
  • एकदा आपण आपल्या विजेट देखावा आणि सामग्रीसह आनंदी झाल्यानंतर, स्नॅपशॉट घ्या निवडा.

  • आपला स्नॅपशॉट पुनर्प्राप्त करण्यासाठी, Android स्टुडिओवर परत स्विच करा आणि टूलबारमधून पहा> साधन विंडोज> डिव्हाइस फाइल एक्सप्लोरर निवडा. हे Android स्टुडिओचे डिव्हाइस फाइल एक्सप्लोरर लाँच करते.
  • डिव्हाइस फाईल एक्सप्लोररमध्ये, एसडीकार्ड / डाउनलोड वर नेव्हिगेट करा. आपल्याला आपली पूर्वावलोकन प्रतिमा खालील स्वरूपात जतन केलेली आढळली पाहिजे: _ori_.png

  • ही प्रतिमा अँड्रॉइड स्टुडिओच्या बाहेर ड्रॅग करा आणि सहजपणे प्रवेशयोग्य आपल्या डेस्कटॉप सारखी कुठेतरी ड्रॉप करा.
  • या प्रतिमेच्या फाईलला वर्णनात्मक नाव द्या.
  • आपल्या प्रकल्पाच्या काढण्यायोग्य फोल्डरमध्ये फाइल ड्रॅग आणि ड्रॉप करा.
  • या अ‍ॅप्लिकेशनसाठी कलेक्शन_विजेट_इंफो.एक्सएमएल आहे, असे आपले अ‍ॅप विजेटप्रोइडरइन्फो उघडा.
  • अँड्रॉइड: प्रीव्ह्यूआयमेज = "@ mipmap / ic_launcher" ओळ शोधा आणि आपल्या पूर्वावलोकन प्रतिमेचा संदर्भ देण्यासाठी ती अद्यतनित करा.

आपले विजेट आता या नवीन प्रतिमेचे पूर्वावलोकन प्रतिमे म्हणून वापरेल:

  • आपल्या भौतिक Android डिव्हाइस किंवा एव्हीडी वर अद्यतनित केलेला प्रकल्प स्थापित करा.
  • होमस्क्रीनमधील रिक्त विभाग दीर्घ-दाबा.
  • विजेट टॅप करा, जे विजेट निवडक लाँच करते.
  • आपल्या विजेटवर स्क्रोल करा; ती आता अद्यतनित पूर्वावलोकन प्रतिमा वापरली पाहिजे.

सानुकूल विजेट: कॉन्फिगरेशन क्रियाकलाप जोडणे

जेव्हा वापरकर्ता आपल्या विजेटचे प्रत्येक उदाहरण त्यांच्या होमस्क्रीनवर ठेवतो तेव्हा कॉन्फिगरेशन क्रिया स्वयंचलितपणे लाँच होते.

आपण आपल्या प्रकल्पात कॉन्फिगरेशन क्रियाकलाप जोडू इच्छिता याची अनेक कारणे आहेत.

विजेट्स जेव्हा वापरकर्त्याकडे सर्वात महत्वाची असतात अशा माहिती किंवा वैशिष्ट्यांमध्ये प्रवेश प्रदान करतात तेव्हा सर्वोत्कृष्ट वापरकर्ता अनुभव देतात.

सर्वप्रथम, काही विजेट्सना प्रारंभिक सेटअपची आवश्यकता असते, उदाहरणार्थ ट्रॅफिक सतर्कता दर्शविणारे विजेट वापरकर्त्याचे घराचा पत्ता, ते कोठे काम करतात आणि सामान्यत: कधी प्रवास करतात त्या वेळेची माहिती असणे आवश्यक आहे. ही माहिती प्रविष्ट करण्याचा काही मार्ग नसल्यास आपले विजेट कदाचित निरुपयोगी आहे!

याव्यतिरिक्त, विजेट्स जेव्हा वापरकर्त्याकडे सर्वात महत्वाची असतात अशा माहिती किंवा वैशिष्ट्यांपर्यंत प्रवेश प्रदान करतात तेव्हा सर्वोत्कृष्ट वापरकर्ता अनुभव देतात. आपल्या प्रोजेक्टमध्ये कॉन्फिगरेशन अ‍ॅक्टिव्हिटी जोडून आपण वापरकर्त्यांना निवडण्याऐवजी स्वातंत्र्य देऊ शकता नक्की आपल्या विजेटमध्ये काय समाविष्ट आहे.

विजेटची पार्श्वभूमी किंवा फाँट बदलणे यासारख्या तुलनेने सरळ सानुकूलनेसुद्धा वापरकर्त्याच्या अनुभवावर सकारात्मक परिणाम होऊ शकतात - तथापि, त्यांच्या उर्वरित होमस्क्रीनबरोबर दृश्यमानपणे भिडणार्‍या विजेटचे कोणीही कौतुक करणार नाही!

त्यांच्या उर्वरित होमस्क्रीनबरोबर दृश्यमानपणे भिडणार्‍या विजेटचे कोणीही कौतुक करणार नाही!

वैकल्पिकरित्या, कधीकधी आपल्याकडे आपल्या विजेटमध्ये समाविष्ट करू इच्छित सामग्रीची एक लांब यादी असू शकते आणि आपण आपल्या पर्यायांना कमी करण्यासाठी संघर्ष करीत आहात. कॉन्फिगरेशन अ‍ॅक्टिव्हिटी म्हणजे आपल्या सर्व कल्पना चांगल्या वापरासाठी ठेवण्याचा एक मार्ग असू शकतो तयार करीत आहे एक गोंधळलेले, गोंधळात टाकणारे विजेट. फक्त एक गोष्ट लक्षात ठेवा की विजेट सेट अप करणे हे एक कंटाळवाणेसारखे वाटू नये, म्हणून जर आपण कॉन्फिगरेशन क्रियाकलाप प्रदान केले तर आपण स्वत: ला तीन कॉन्फिगरेशन पर्यायांवर मर्यादित ठेवावे अशी शिफारस केली जाते.

चला आमच्या प्रकल्पात कॉन्फिगरेशन क्रियाकलाप जोडू!

प्रथम, आमच्या कॉन्फिगरेशन अ‍ॅक्टिव्हिटीला एका लेआउटची आवश्यकता आहे, म्हणून कॉन्फिग_अॅक्टिव्हिटी.एक्सएमएल नावाची एक नवीन लेआउट स्त्रोत फाइल तयार करा.

मी या लेआउटमध्ये खालील बटणे जोडणार आहे:

  • कॉन्फिगरेशन बटण. रिअल-लाइफ प्रोजेक्टमध्ये, हे बटण काही प्रमाणात विजेटमध्ये बदल करेल, उदाहरणार्थ सामग्री जोडणे किंवा काढून टाकणे, किंवा विजेट अद्ययावत होण्यास किती वारंवार बदल करते. आमचा कोड सरळ ठेवण्यासाठी मदत करण्यासाठी, या बटणावर क्लिक केल्याने कॉन्फिगरेशन ऑप्शन्स टोस्ट दिसेल.
  • एक सेटअप बटण. एकदा त्यांचे विजेट कसे कॉन्फिगर केले गेले यावर वापरकर्त्यास आनंद झाला की हे बटण दाबल्यास नवीन-कॉन्फिगर केलेले विजेट त्यांच्या होमस्क्रीनवर ठेवेल.

येथे माझी पूर्ण केलेली config_activity.xml फाईल आहे:

कॉन्फिगरेशन क्रियाकलाप तयार करा

आता आपल्याला कॉन्फिगरेशन अ‍ॅक्टिव्हिटी तयार करण्याची गरज आहे.

प्रारंभ करण्यासाठी, कॉन्फिगरॅक्टिव्हिटी नावाचा एक नवीन जावा वर्ग तयार करा. या गतिविधीमध्ये, आम्ही कॉन्फिगरेशन क्रियाकलाप सुरू केल्याच्या हेतूने अ‍ॅप विजेट आयडी पुनर्प्राप्त करणार आहोत. या हेतूकडे विजेट आयडी नसल्यास आम्हाला फिनिश () पद्धत कॉल करण्याची आवश्यकता आहेः

हेतू हेतू = getIntent (); बंडल अतिरिक्त = intent.getExtras (); if (अतिरिक्त! = शून्य) {appWidgetId = एक्स्ट्रा.गेन्ट (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {समाप्त (); }

पुढे, आम्हाला परतीचा हेतू तयार करणे आवश्यक आहे, मूळ अ‍ॅपविजेटआयडी पास करणे आणि कॉन्फिगरेशन अ‍ॅक्टिव्हिटीमधून निकाल सेट करणे आवश्यक आहे:

हेतू परिणाम व्हॅल्यू = नवीन हेतू (); परिणाम व्हॅल्यू.पूटएक्स्ट्रा (अ‍ॅपविजेटमॅनेज. टेक्स्ट__पीपीडब्ल्यूआयडीजीईआयडी, अ‍ॅपविजेटआयडी); सेट परिणाम (RESULT_OK, परिणाम व्हॅल्यू); समाप्त (); }}}

आपण कॉन्फिगरेशन क्रियाकलाप प्रदान केल्यास कॉन्फिगरेशन क्रियाकलाप सुरू होईल तेव्हा ACTION_APPWIDGET_UPDATE प्रसारण स्वयंचलितपणे पाठविले जाणार नाही, ज्याचा अर्थ ऑन-अपडेट () पद्धत आहे. नाही जेव्हा वापरकर्त्याने आपल्या विजेटचा देखावा तयार केला तेव्हा कॉल केला जाईल.

आपले विजेट अद्ययावत माहिती आणि सामग्रीसह तयार केले आहे हे सुनिश्चित करण्यासाठी आपली कॉन्फिगरेशन क्रियाकलाप हे केलेच पाहिजे प्रथम ऑन-अपडेट () विनंती ट्रिगर करा.

येथे पूर्ण केलेली कॉन्फिगरॅक्टिव्हिटी आहेः

android.app.Activity आयात करा; android.appwidget.appWidgetManager आयात करा; android.os.Bundle आयात करा; आयात android.widget.Button; android.content.Inttent आयात करा; android.view.View आयात करा; आयात android.view.View.OnClickListener; android.widget.Toast आयात करा; पब्लिक क्लास कॉन्फिगर अ‍ॅक्टिव्हिटीने क्रियाकलाप वाढविला आहे O @ ओव्हरराइड प्रोटेक्टेड शून्य ऑनक्रिएट (बंडल सेव्हिडइन्स्टेन्सस्टेट) {सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेनस्टेट); सेट कॉन्टेन्ट व्ह्यू (आर. लेआउट. कॉन्फिग_एक्टिव्हिटी); सेट परिणाम (RESULT_CANCELED); बटण सेटअपविजेट = (बटण) FindViewById (R.id.setupWidget); setupWidget.setOnClickListener (नवीन OnClickListener () {@Override सार्वजनिक शून्य onClick (दृश्य v) {हँडलसेटअप विजेट ();}}); बटण कॉन्फिगर बटण = (बटण) FindViewById (R.id.configButton); configButton.setOnClickListener (नवीन OnClickListener () {@Override सार्वजनिक शून्य onClick (पहा v) {हैंडल कॉन्फिगविजेट ();}}); } खाजगी शून्य हँडलसेटअप विजेट () {शोअॅपविजेट (); } खाजगी शून्य हँडलकॉन्फिगविजेट () {टोस्ट.मेकटेक्स्ट (कॉन्फिगरेशनसिटी.थिस, "कॉन्फिगरेशन पर्याय", टोस्ट. एलएनजीटीएच_लाँग) .शो (); app INWWgetgetId; प्रायव्हेट शून्य शोअॅपविजेट () {appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; हेतू हेतू = getIntent (); बंडल अतिरिक्त = intent.getExtras (); if (अतिरिक्त! = शून्य) {appWidgetId = एक्स्ट्रा.गेन्ट (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {समाप्त (); TO // करणे: कॉन्फिगरेशन करा // इन्टेंट रिझल्ट = नवीन हेतू (); परिणाम व्हॅल्यू.पूटएक्स्ट्रा (अ‍ॅपविजेटमॅनेज. टेक्स्ट__पीपीडब्ल्यूआयडीजीईआयडी, अ‍ॅपविजेटआयडी); सेट परिणाम (RESULT_OK, परिणाम व्हॅल्यू); समाप्त (); }}}

एकदा आपण कॉन्फिगरेशन क्रियाकलाप तयार केल्‍यानंतर आपणास या अ‍ॅक्टिव्हिटीला मॅनिफेस्टमध्ये घोषित करणे आवश्यक आहे आणि ते निर्दिष्ट करणे आवश्यक आहे की ते APPWIDGET_CONFIGURE क्रिया स्वीकारते:

शेवटी, कॉन्फिगरेशन अ‍ॅक्टिव्हिटीचा संदर्भ पॅकेजच्या व्याप्तीबाहेर असल्याने, आम्हाला आमच्या अ‍ॅपविजेटप्रोइडरइन्फोमध्ये ही क्रिया घोषित करण्याची आवश्यकता आहे, जी या घटनेत संकलन_विजेट_इंफो.एक्सएमएल फाइल आहे:

android: कॉन्फिगर = "com.jessicathornsby.collectionwidget.ConfigActivity">

आपल्या प्रोजेक्टची चाचणी घेत आहे

आता आपला समाप्त प्रकल्प चाचणी घेण्याची वेळ आली आहे:

  • आपला अद्यतनित प्रकल्प भौतिक Android डिव्हाइस किंवा एव्हीडी वर स्थापित करा.
  • आपण अगदी नवीनतम आवृत्तीसह कार्य करत आहात हे सुनिश्चित करण्यासाठी आपल्या विजेटची सर्व मागील उदाहरणे हटवा.
  • होमस्क्रीनच्या रिक्त क्षेत्रावर दीर्घकाळ दाबा आणि सूचित केल्यावर विजेट निवडा.
  • आपले विजेट निवडक मध्ये शोधा आणि ते निवडण्यासाठी दीर्घ दाबा.
  • आपल्या होमस्क्रीनवर विजेट ड्रॉप करा. कॉन्फिगरेशन क्रियाकलाप स्वयंचलितपणे लाँच व्हायला पाहिजे.
  • परफॉरम कुछ कॉन्फिगरेशन बटणावर क्लिक करा आणि एक कॉन्फिगरेशन ऑप्शन्स टोस्ट दिसायला हवा, याची खात्री करुन की हा संवाद यशस्वीरित्या नोंदणीकृत झाला आहे.
  • अशी कल्पना करा की आपण विजेटच्या सेटिंग्ज ट्वीक केल्या आहेत आणि आता आपल्या होमस्क्रीनवर ठेवण्यास तयार आहात; विजेट बटण तयार करा एक टॅप द्या आणि हे विजेट यशस्वीरित्या तयार केले जावे.

आपण गिटहब वरून पूर्ण केलेला संग्रह विजेट प्रकल्प डाउनलोड करू शकता.

लपेटणे

या लेखात, आम्ही एक स्क्रोल करण्यायोग्य संग्रह विजेट तयार केला आहे जो वापरकर्त्याच्या होमस्क्रीनवर डेटा सेट प्रदर्शित करतो.

आपण या प्रकल्पावर काम सुरू ठेऊ इच्छित असल्यास, आपण आपल्या अ‍ॅपडब्ल्यूजेटप्रोइडरइन्फो फाईल (संग्रह_विजेट_इन्फो) मध्ये परिभाषित केलेल्या अंतरालगत नवीन माहितीसह अद्यतनित केलेले विजेट तयार करण्यासाठी, ऑन युडेट () पद्धतीमध्ये आपला स्वतःचा कोड जोडण्याचा प्रयत्न करू शकता.

आपण Android विजेट तयार केल्यास, नंतर आपल्या टिप्पण्या खाली टिप्पण्यांमध्ये सामायिक करण्याचे सुनिश्चित करा!

आपण एखाद्याला स्मार्टवॉच (किंवा स्वत: ला गिफ्ट) गिफ्ट करण्याचा विचार करीत असल्यास, फॉसीलच्या अधिकृत वेबसाइटवर सध्या फॉसिल स्पोर्ट डील होत आहे. प्रोमो कोड वापरुन, आपण स्वत: ला नवीन फोसिल स्पोर्टला नामा...

गूगल होम आपल्या कमांडच्या लायब्ररीचा द्रुतगती विस्तार करीत असताना, वास्तविकता अशी आहे की जेव्हा स्मार्ट स्पीकर्सचा विचार केला जातो तेव्हा अलेक्सा हा सर्वात मजबूत डिजिटल सहाय्यक आहे. अलेक्झा एक शक्तिशा...

आकर्षक लेख