ऐनिमेशन के बारे में जानकारी

Compose का इस्तेमाल करके मैसेज लिखना
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर सुझाया जाता है. Compose में ऐनिमेशन इस्तेमाल करने का तरीका जानें.

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

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

यह समझने के लिए कि आपको ऐनिमेशन का इस्तेमाल कब करना चाहिए, मोशन के बारे में Material Design की गाइड भी देखें.

बिटमैप ऐनिमेट करना

पहली इमेज. ऐनिमेट किया गया ड्रॉआउट.

आइकॉन या इलस्ट्रेशन जैसे बिटमैप ग्राफ़िक को ऐनिमेट करने के लिए, ड्रॉवल ऐनिमेशन एपीआई का इस्तेमाल करें. आम तौर पर, इन ऐनिमेशन को ड्रॉबल रिसॉर्स के साथ स्टैटिक तौर पर तय किया जाता है. हालांकि, रनटाइम के दौरान भी ऐनिमेशन के व्यवहार को तय किया जा सकता है.

उदाहरण के लिए, उपयोगकर्ता को यह बताने का एक अच्छा तरीका है कि दो कार्रवाइयां एक-दूसरे से जुड़ी हैं. इसके लिए, चलाएं बटन को ऐनिमेट करें, ताकि टैप करने पर वह रोकें बटन में बदल जाए.

ज़्यादा जानकारी के लिए, ड्रॉ किए जा सकने वाले ग्राफ़िक को ऐनिमेट करना लेख पढ़ें.

यूज़र इंटरफ़ेस की विज़िबिलिटी और मोशन को ऐनिमेट करना

दूसरी इमेज. डायलॉग दिखने और गायब होने पर, थोड़ा सा ऐनिमेशन होने से यूज़र इंटरफ़ेस (यूआई) में बदलाव कम असरदार लगता है.

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

मौजूदा लेआउट में व्यू को एक जगह से दूसरी जगह ले जाने, दिखाने या छिपाने के लिए, android.animation पैकेज से मिले प्रॉपर्टी ऐनिमेशन सिस्टम का इस्तेमाल किया जा सकता है. यह Android 3.0 (एपीआई लेवल 11) और उसके बाद के वर्शन में उपलब्ध है. ये एपीआई, समय के साथ आपके View ऑब्जेक्ट की प्रॉपर्टी अपडेट करते हैं. साथ ही, प्रॉपर्टी में बदलाव होने पर व्यू को लगातार फिर से बनाते हैं. उदाहरण के लिए, पोज़िशन प्रॉपर्टी बदलने पर, व्यू स्क्रीन पर एक जगह से दूसरी जगह पर चला जाता है. अल्फा प्रॉपर्टी बदलने पर, व्यू धीरे-धीरे दिखने लगता है या धीरे-धीरे गायब हो जाता है.

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

प्रॉपर्टी ऐनिमेशन सिस्टम का इस्तेमाल करके ऐनिमेशन बनाने का तरीका जानने के लिए, प्रॉपर्टी ऐनिमेशन की खास जानकारी पढ़ें. सामान्य ऐनिमेशन बनाने के लिए, ये पेज भी देखे जा सकते हैं:

फ़िज़िक्स पर आधारित मोशन

तीसरी इमेज. ObjectAnimator की मदद से बनाया गया ऐनिमेशन.

चौथी इमेज. फ़िज़िक्स पर आधारित एपीआई की मदद से बनाया गया ऐनिमेशन.

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

ये सुविधाएं देने के लिए, Android सहायता लाइब्रेरी में फ़िज़िक्स पर आधारित ऐनिमेशन एपीआई शामिल हैं. ये एपीआई, फ़िज़िक्स के नियमों के आधार पर यह कंट्रोल करते हैं कि आपके ऐनिमेशन कैसे दिखें.

फ़िज़िक्स पर आधारित दो सामान्य ऐनिमेशन ये हैं:

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

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

लेआउट में होने वाले बदलावों को ऐनिमेशन के साथ दिखाना

पांचवीं इमेज. ज़्यादा जानकारी दिखाने के लिए ऐनिमेशन पाने के लिए, लेआउट बदलें या कोई नई गतिविधि शुरू करें.

Android 4.4 (एपीआई लेवल 19) और इसके बाद के वर्शन पर, मौजूदा गतिविधि या फ़्रैगमेंट में लेआउट स्वैप करते समय ऐनिमेशन बनाने के लिए, ट्रांज़िशन फ़्रेमवर्क का इस्तेमाल किया जा सकता है. आपको सिर्फ़ शुरुआत और आखिर में दिखने वाले लेआउट के साथ-साथ, यह बताना होगा कि आपको किस तरह का ऐनिमेशन इस्तेमाल करना है. इसके बाद, सिस्टम दोनों लेआउट के बीच ऐनिमेशन तय करता है और उसे लागू करता है. इसका इस्तेमाल, पूरे यूज़र इंटरफ़ेस (यूआई) को बदलने या सिर्फ़ कुछ व्यू को हटाने या बदलने के लिए किया जा सकता है.

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

शुरू और खत्म होने वाले लेआउट, दोनों को Scene में सेव किया जाता है. हालांकि, आम तौर पर शुरू होने वाला सीन, मौजूदा लेआउट से अपने-आप तय होता है. सिस्टम को यह बताने के लिए कि आपको किस तरह का ऐनिमेशन चाहिए, एक Transition बनाया जाता है. इसके बाद, TransitionManager.go() को कॉल किया जाता है और सिस्टम, लेआउट स्विच करने के लिए ऐनिमेशन चलाता है.

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

एक गतिविधि से दूसरी गतिविधि पर जाने के दौरान ऐनिमेशन दिखाना

Android 5.0 (एपीआई लेवल 21) और उसके बाद के वर्शन पर, ऐनिमेशन भी बनाए जा सकते हैं. ये ऐनिमेशन, एक गतिविधि से दूसरी गतिविधि पर ट्रांज़िशन करते हैं. यह पिछले सेक्शन में बताए गए उसी ट्रांज़िशन फ़्रेमवर्क पर आधारित है. हालांकि, इसकी मदद से अलग-अलग गतिविधियों में लेआउट के बीच ऐनिमेशन बनाए जा सकते हैं.

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

आम तौर पर, startActivity() को कॉल किया जाता है. हालांकि, इसमें ActivityOptions.makeSceneTransitionAnimation() से मिले विकल्पों का बंडल पास किया जाता है. विकल्पों के इस बंडल में यह शामिल हो सकता है कि गतिविधियों के बीच कौनसे व्यू शेयर किए जाते हैं, ताकि ट्रांज़िशन फ़्रेमवर्क ऐनिमेशन के दौरान उन्हें कनेक्ट कर सके.

ज़्यादा संसाधनों के लिए, ये देखें: