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

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() से मिले विकल्पों का एक बंडल पास किया जाता है. विकल्पों के इस बंडल में यह शामिल हो सकता है कि गतिविधियों के बीच कौनसे व्यू शेयर किए जाते हैं, ताकि ट्रांज़िशन फ़्रेमवर्क ऐनिमेशन के दौरान उन्हें कनेक्ट कर सके.

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