ट्रांज़िशन कॉन्फ़िगर करना

पैनलों के बीच बदलावों को तय करने के लिए, ट्रांज़िशन का इस्तेमाल करें. ट्रांज़िशन को तय किया जा सकता है. इससे यह तय किया जा सकता है कि पैनल के दो वैरिएंट के बीच बदलाव कब और कैसे करना है. हर पैनल के लिए ट्रांज़िशन की सूची तय की जा सकती है.

एक <TaskPanel> या <DecorPanel> के कॉन्फ़िगरेशन में, एक या उससे ज़्यादा <Transition> डेफ़िनिशन के लिए, <Transitions> एक्सएमएल टैग का इस्तेमाल कंटेनर के तौर पर करें. इस टैग का इस्तेमाल करके, ऐनिमेशन के नियमों का एक सेट तय किया जा सकता है. इससे यह तय किया जा सकता है कि किसी पैनल को एक अलग वैरिएंट से दूसरे वैरिएंट में कब और कैसे बदलना है.

एक्सएमएल एट्रिब्यूट

<Transitions> टैग, इन चाइल्ड <Transition> एलिमेंट के लिए डिफ़ॉल्ट वैल्यू तय कर सकता है:

एट्रिब्यूट स्थिति ब्यौरा
<defaultDuration> वैकल्पिक

यह सभी चाइल्ड पर लागू होने वाली डिफ़ॉल्ट अवधि को मिलीसेकंड में तय करता है

<Transition> ऐसे एलिमेंट जिनमें अवधि एट्रिब्यूट की वैल्यू साफ़ तौर पर सेट नहीं की गई है.

इस एट्रिब्यूट को तय न करने पर, सिस्टम के DEFAULT_DURATION कॉन्स्टेंट का इस्तेमाल किया जाता है. आम तौर पर, यह 300 मिलीसेकंड होता है.

defaultInterpolator वैकल्पिक

यह Android इंटरपोलेटर एक्सएमएल रिसॉर्स आईडी को रेफ़रंस करता है. उदाहरण के लिए, @android:anim/accelerate_decelerate_interpolator. इंटरपोलेटर का इस्तेमाल, सभी चाइल्ड <Transition> एलिमेंट के लिए डिफ़ॉल्ट रूप से किया जाता है. हालांकि, ऐसा तब होता है, जब वे इंटरपोलेटर एट्रिब्यूट को साफ़ तौर पर सेट नहीं करते हैं.

अगर कोई डिफ़ॉल्ट इंटरपोलेटर नहीं दिया गया है, तो सिस्टम आम तौर पर डिफ़ॉल्ट रूप से AccelerateDecelerateInterpolator पर सेट हो जाता है.

एक्सएमएल चाइल्ड एलिमेंट

<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>