पैनलों के बीच बदलावों को तय करने के लिए, ट्रांज़िशन का इस्तेमाल करें. ट्रांज़िशन को तय किया जा सकता है. इससे यह तय किया जा सकता है कि पैनल के दो वैरिएंट के बीच बदलाव कब और कैसे करना है. हर पैनल के लिए ट्रांज़िशन की सूची तय की जा सकती है.
एक <TaskPanel>
या <DecorPanel>
के कॉन्फ़िगरेशन में, एक या उससे ज़्यादा <Transition>
डेफ़िनिशन के लिए, <Transitions>
एक्सएमएल टैग का इस्तेमाल कंटेनर के तौर पर करें.
इस टैग का इस्तेमाल करके, ऐनिमेशन के नियमों का एक सेट तय किया जा सकता है. इससे यह तय किया जा सकता है कि किसी पैनल को एक अलग वैरिएंट से दूसरे वैरिएंट में कब और कैसे बदलना है.
एक्सएमएल एट्रिब्यूट
<Transitions>
टैग, इन चाइल्ड <Transition>
एलिमेंट के लिए डिफ़ॉल्ट वैल्यू तय कर सकता है:
एट्रिब्यूट | स्थिति | ब्यौरा |
---|---|---|
<defaultDuration> |
वैकल्पिक | यह सभी चाइल्ड
इस एट्रिब्यूट को तय न करने पर, सिस्टम के |
defaultInterpolator |
वैकल्पिक | यह Android इंटरपोलेटर एक्सएमएल रिसॉर्स आईडी को रेफ़रंस करता है. उदाहरण के लिए,
अगर कोई डिफ़ॉल्ट इंटरपोलेटर नहीं दिया गया है, तो सिस्टम आम तौर पर डिफ़ॉल्ट रूप से |
एक्सएमएल चाइल्ड एलिमेंट
<Transitions>
का चाइल्ड एलिमेंट <Transition>
है. यह मुख्य एलिमेंट है. इसका इस्तेमाल PanelState
वैरिएंट के बीच किसी खास ऐनिमेशन पाथ को तय करने के लिए किया जाता है. एक <Transitions>
ब्लॉक में कई <Transition>
एलिमेंट नेस्ट किए जा सकते हैं.
नमूना कोड
इस सैंपल में, fromVariant
ज़रूरी नहीं है. इसे तय न करने पर, मौजूदा वैरिएंट का इस्तेमाल किया जाता है. अगर fromVariant
तय किया गया है, तो ट्रांज़िशन का इस्तेमाल सिर्फ़ तब किया जाता है, जब सभी पैरामीटर मेल खाते हों. पैरामीटर, इवेंट और fromVariant
में तय किए जाते हैं.
<Transitions defaultDuration="400"
defaultInterpolator="@android:anim/linear_interpolator">
<Transition fromVariant="closed_app"
toVariant="opened_app">
<Event id="app_opened" panel="application_panel" />
</Transition>
</Transitions>
ट्रांज़िशन
ट्रांज़िशन से पता चलता है कि पैनल के दो वैरिएंट के बीच, विज़ुअल स्टेट में बदलाव को कैसे ऐनिमेट किया जाए. ट्रांज़िशन से, एक वैरिएंट से दूसरे वैरिएंट पर जाने का पाथ दिखता है. इसके लिए, ट्रांज़िशन में कई तरह की जानकारी दी जाती है. जैसे, कौनसा ऐनिमेशन लागू करना है और ऐनिमेशन को ट्रिगर करने के लिए कौनसा इवेंट ज़रूरी है.
किसी पैनल के लिए ट्रांज़िशन, बाउंड्री, दिखने की स्थिति, और ऐल्फ़ा जैसी प्रॉपर्टी के लिए ऐनिमेशन तय कर सकते हैं. अगर कस्टम ऐनिमेशन बनाने वाले व्यक्ति के बारे में जानकारी नहीं दी गई है, तो डिफ़ॉल्ट ऐनिमेशन बनाने वाले व्यक्ति की जानकारी का इस्तेमाल किया जाता है.
एक्सएमएल एट्रिब्यूट
<Transition>
टैग, ऐनिमेशन की विशेषताओं और उन शर्तों को तय करने के लिए कई एट्रिब्यूट का इस्तेमाल करता है जिनके तहत ऐनिमेशन होना है.
एक्सएमएल चाइल्ड एलिमेंट
<Event>
से, इवेंट की उन प्रॉपर्टी के बारे में पता चलता है जो ट्रांज़िशन को ट्रिगर कर सकती हैं.
एट्रिब्यूट | स्थिति | ब्यौरा |
---|---|---|
<id> |
ज़रूरी है | ट्रिगर को चालू करने के लिए, इवेंट का यूनीक आइडेंटिफ़ायर. |
<panelId> |
वैकल्पिक | इवेंट से जुड़े पैनल का यूनीक आइडेंटिफ़ायर. |
componentName |
वैकल्पिक | इस इवेंट से जुड़ा कॉम्पोनेंट का नाम. |
packageName |
वैकल्पिक | इवेंट से जुड़ा पैकेज का नाम. |
नमूना कोड
<Transitions defaultDuration="400"
defaultInterpolator="@android:anim/accelerate_interpolator">
<!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
<Transition fromVariant="closed_app"
toVariant="opened_app">
<Event id="app_opened" panel="application_panel" />
<Transition>
<!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
<Transition fromVariant="opened_app"
toVariant="closed_app"
animator="@animator/close_app">
<Event id="_System_PanelEmptyEvent"
panelId="application_panel" />
<Transition>
</Transitions>