ऐनिमेशन की मदद से, विज़ुअल क्यू जोड़े जा सकते हैं. इससे उपयोगकर्ताओं को यह पता चलता है कि आपके ऐप्लिकेशन में क्या हो रहा है. ये ऐनिमेशन तब खास तौर पर काम के होते हैं, जब यूज़र इंटरफ़ेस (यूआई) का स्टेटस बदलता है. जैसे, नया कॉन्टेंट लोड होने या नई कार्रवाइयां उपलब्ध होने पर. ऐनिमेशन की मदद से, आपके ऐप्लिकेशन को बेहतर दिखाया जा सकता है. इससे ऐप्लिकेशन की क्वालिटी और लुक बेहतर बनता है.
Android में अलग-अलग तरह के ऐनिमेशन एपीआई शामिल होते हैं. यह इस बात पर निर्भर करता है कि आपको किस तरह का ऐनिमेशन चाहिए. इस दस्तावेज़ में, यूज़र इंटरफ़ेस (यूआई) में मोशन जोड़ने के अलग-अलग तरीकों के बारे में खास जानकारी दी गई है.
ऐनिमेशन का इस्तेमाल कब करना चाहिए, यह समझने के लिए मोशन के बारे में Material Design गाइड भी देखें.
बिटमैप को ऐनिमेट करना
आइकॉन या इलस्ट्रेशन जैसे बिटमैप ग्राफ़िक को ऐनिमेट करने के लिए, ड्रॉवल ऐनिमेशन एपीआई का इस्तेमाल करें. आम तौर पर, इन ऐनिमेशन को ड्रॉबल रिसॉर्स की मदद से स्टैटिक तौर पर तय किया जाता है. हालांकि, रनटाइम के दौरान भी ऐनिमेशन के व्यवहार को तय किया जा सकता है.
उदाहरण के लिए, उपयोगकर्ता को यह बताने का एक अच्छा तरीका है कि दो कार्रवाइयां एक-दूसरे से जुड़ी हैं. इसके लिए, चलाएं बटन को ऐनिमेट करें, ताकि टैप करने पर वह रोकें बटन में बदल जाए.
ज़्यादा जानकारी के लिए, ड्रॉ किए जा सकने वाले ग्राफ़िक को ऐनिमेट करना लेख पढ़ें.
यूज़र इंटरफ़ेस की विज़िबिलिटी और मोशन को ऐनिमेट करना
जब आपको अपने लेआउट में व्यू की स्थिति या दिखने का तरीका बदलना हो, तो बेहतर होगा कि आप थोड़े-बहुत ऐनिमेशन शामिल करें. इससे उपयोगकर्ता को यह समझने में मदद मिलेगी कि यूज़र इंटरफ़ेस (यूआई) कैसे बदल रहा है.
मौजूदा लेआउट में व्यू को एक जगह से दूसरी जगह ले जाने, दिखाने या छिपाने के लिए, android.animation
पैकेज से मिले प्रॉपर्टी ऐनिमेशन सिस्टम का इस्तेमाल किया जा सकता है. यह Android 3.0 (एपीआई लेवल 11) और उसके बाद के वर्शन में उपलब्ध है. ये एपीआई, समय के साथ आपके View
ऑब्जेक्ट की प्रॉपर्टी अपडेट करते हैं. साथ ही, प्रॉपर्टी में बदलाव होने पर व्यू को लगातार फिर से बनाते हैं. उदाहरण के लिए, पोज़िशन प्रॉपर्टी बदलने पर, व्यू स्क्रीन पर एक जगह से दूसरी जगह पर चला जाता है. अल्फा प्रॉपर्टी बदलने पर, व्यू धीरे-धीरे दिखने लगता है या धीरे-धीरे गायब हो जाता है.
इन एनिमेशन को आसानी से बनाने के लिए, अपने लेआउट पर एनिमेशन चालू करें, ताकि किसी व्यू की दिखने की सेटिंग में बदलाव करने पर, एनिमेशन अपने-आप लागू हो जाए. ज़्यादा जानकारी के लिए, लेआउट के अपडेट अपने-आप ऐनिमेट होने की सुविधा देखें.
प्रॉपर्टी ऐनिमेशन सिस्टम का इस्तेमाल करके ऐनिमेशन बनाने का तरीका जानने के लिए, प्रॉपर्टी ऐनिमेशन की खास जानकारी पढ़ें. सामान्य ऐनिमेशन बनाने के लिए, ये पेज भी देखे जा सकते हैं:
फ़िज़िक्स पर आधारित मोशन
जब भी मुमकिन हो, अपने ऐनिमेशन में असल दुनिया की भौतिकी लागू करें, ताकि वे नैचुरल दिखें. उदाहरण के लिए, टारगेट में बदलाव होने पर, उन्हें गति बनाए रखनी चाहिए और किसी भी बदलाव के दौरान आसानी से ट्रांज़िशन करना चाहिए.
इन सुविधाओं को उपलब्ध कराने के लिए, Android सहायता लाइब्रेरी में फ़िज़िक्स पर आधारित ऐनिमेशन एपीआई शामिल हैं. ये एपीआई, फ़िज़िक्स के नियमों के आधार पर यह कंट्रोल करते हैं कि आपके ऐनिमेशन कैसे दिखें.
फ़िज़िक्स पर आधारित दो सामान्य ऐनिमेशन ये हैं:
फ़िज़िक्स पर आधारित नहीं होने वाले ऐनिमेशन, जैसे कि ObjectAnimator
एपीआई से बनाए गए ऐनिमेशन, काफ़ी स्टैटिक होते हैं और इनकी अवधि तय होती है. अगर टारगेट वैल्यू बदलती है, तो आपको टारगेट वैल्यू बदलने के समय ऐनिमेशन रद्द करना होगा. साथ ही, ऐनिमेशन को नई वैल्यू के साथ फिर से कॉन्फ़िगर करना होगा और नई टारगेट वैल्यू जोड़नी होगी. विज़ुअल तौर पर, इस प्रोसेस से ऐनिमेशन अचानक रुक जाता है और उसके बाद, अलग-अलग तरह की गतिविधियां दिखती हैं. इस बारे में तीसरी इमेज में बताया गया है.
फ़िज़िक्स पर आधारित ऐनिमेशन एपीआई, जैसे कि DynamicAnimation
की मदद से बनाए गए ऐनिमेशन, फ़ोर्स के हिसाब से चलते हैं. टारगेट वैल्यू में बदलाव करने से, फ़ोर्स में बदलाव होता है. नया फ़ोर्स, मौजूदा वेग पर लागू होता है. इससे नए टारगेट पर लगातार ट्रांज़िशन होता रहता है. इस प्रोसेस से, ज़्यादा नेचुरल ऐनिमेशन मिलता है, जैसा कि चौथे चित्र में दिखाया गया है.
लेआउट में होने वाले बदलावों को ऐनिमेशन के साथ दिखाना
Android 4.4 (एपीआई लेवल 19) और इसके बाद के वर्शन पर, मौजूदा गतिविधि या फ़्रैगमेंट में लेआउट स्वैप करते समय, ऐनिमेशन बनाने के लिए ट्रांज़िशन फ़्रेमवर्क का इस्तेमाल किया जा सकता है. आपको सिर्फ़ शुरुआत और आखिर में दिखने वाले लेआउट के साथ-साथ, यह बताना होगा कि आपको किस तरह का ऐनिमेशन इस्तेमाल करना है. इसके बाद, सिस्टम दोनों लेआउट के बीच ऐनिमेशन तय करता है और उसे लागू करता है. इसका इस्तेमाल, पूरे यूज़र इंटरफ़ेस (यूआई) को बदलने या सिर्फ़ कुछ व्यू को हटाने या बदलने के लिए किया जा सकता है.
उदाहरण के लिए, जब कोई उपयोगकर्ता किसी आइटम के बारे में ज़्यादा जानकारी देखने के लिए उस पर टैप करता है, तो आपके पास लेआउट को आइटम की जानकारी से बदलने का विकल्प होता है. इसके लिए, आपको तीसरे चित्र में दिखाए गए ट्रांज़िशन का इस्तेमाल करना होगा.
शुरू और खत्म होने वाले लेआउट, दोनों को Scene
में सेव किया जाता है. हालांकि, आम तौर पर शुरू होने वाला सीन, मौजूदा लेआउट से अपने-आप तय होता है. सिस्टम को यह बताने के लिए कि आपको किस तरह का ऐनिमेशन चाहिए, एक Transition
बनाया जाता है. इसके बाद, TransitionManager.go()
को कॉल किया जाता है. इसके बाद, सिस्टम लेआउट स्विच करने के लिए ऐनिमेशन चलाता है.
ज़्यादा जानकारी के लिए, ट्रांज़िशन का इस्तेमाल करके लेआउट में होने वाले बदलावों को ऐनिमेट करना लेख पढ़ें. सैंपल कोड के लिए, BasicTransition देखें.
एक गतिविधि से दूसरी गतिविधि पर जाने के दौरान ऐनिमेशन दिखाना
Android 5.0 (एपीआई लेवल 21) और उसके बाद के वर्शन पर, ऐनिमेशन भी बनाए जा सकते हैं. इनसे एक गतिविधि से दूसरी गतिविधि पर ट्रांज़िशन किया जा सकता है. यह पिछले सेक्शन में बताए गए उसी ट्रांज़िशन फ़्रेमवर्क पर आधारित है. हालांकि, इसकी मदद से अलग-अलग गतिविधियों में लेआउट के बीच ऐनिमेशन बनाए जा सकते हैं.
आपके पास आसान ऐनिमेशन लागू करने का विकल्प होता है. जैसे, नई गतिविधि को साइड से स्लाइड करना या उसे फ़ेड इन करना. इसके अलावा, हर गतिविधि में शेयर किए गए व्यू के बीच ट्रांज़िशन करने वाले ऐनिमेशन भी बनाए जा सकते हैं. उदाहरण के लिए, जब उपयोगकर्ता किसी आइटम के बारे में ज़्यादा जानकारी देखने के लिए उस पर टैप करता है, तो आपके पास ऐनिमेशन की मदद से नई गतिविधि पर स्विच करने का विकल्प होता है. इस ऐनिमेशन की मदद से, आइटम को स्क्रीन पर आसानी से बड़ा किया जा सकता है. जैसे, पांचवें चित्र में दिखाया गया ऐनिमेशन.
आम तौर पर, startActivity()
को कॉल किया जाता है. हालांकि, इसमें ActivityOptions.makeSceneTransitionAnimation()
से मिले विकल्पों का बंडल पास किया जाता है.
विकल्पों के इस बंडल में यह शामिल हो सकता है कि गतिविधियों के बीच कौनसे व्यू शेयर किए जाते हैं, ताकि ट्रांज़िशन फ़्रेमवर्क ऐनिमेशन के दौरान उन्हें कनेक्ट कर सके.
ज़्यादा संसाधनों के लिए, ये देखें: