ऐनिमेशन रिसॉर्स

एक ऐनिमेशन संसाधन, दो तरह के ऐनिमेशन में से एक को परिभाषित कर सकता है:

प्रॉपर्टी ऐनिमेशन
एक तय अवधि में ऑब्जेक्ट की प्रॉपर्टी वैल्यू में बदलाव करके, ऐनिमेशन बनाता है Animator के साथ.
व्यू ऐनिमेशन

व्यू ऐनिमेशन फ़्रेमवर्क की मदद से, दो तरह के ऐनिमेशन किए जा सकते हैं:

प्रॉपर्टी ऐनिमेशन

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

फ़ाइल की जगह:
res/animator/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है.
कंपाइल किए गए संसाधन डेटा टाइप:
ValueAnimator, ObjectAnimator, के लिए रिसॉर्स पॉइंटर, या AnimatorSet
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Java-आधारित या Kotlin कोड में: R.animator.filename
एक्सएमएल में: @[package:]animator/filename
सिंटैक्स:
<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

फ़ाइल में एक रूट एलिमेंट होना चाहिए: या तो: <set>, <objectAnimator> या <valueAnimator>. आप ऐनिमेशन एलिमेंट को <set> एलिमेंट में एक साथ ग्रुप करें. इसमें अन्य एलिमेंट भी शामिल हैं <set> एलिमेंट.

एलिमेंट:
<set>
एक कंटेनर, जिसमें दूसरे ऐनिमेशन एलिमेंट होते हैं (<objectAnimator>, <valueAnimator> या अन्य <set> एलिमेंट). इससे पता चलता है AnimatorSet.

आगे जाने के लिए, नेस्ट किए गए <set> टैग तय किए जा सकते हैं ग्रुप ऐनिमेशन. हर <set> अपनी जानकारी दे सकता है ordering एट्रिब्यूट की वैल्यू सबमिट करें.

विशेषताएं:

android:ordering
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कीवर्ड. इस सेट में ऐनिमेशन के चलने का क्रम तय करता है.
वैल्यूब्यौरा
sequentiallyइस सेट में ऐनिमेशन को क्रम से चलाएं.
together (डिफ़ॉल्ट)इस सेट में एक साथ ऐनिमेशन चलाएं.
<objectAnimator>
एक तय समय के दौरान, किसी ऑब्जेक्ट की एक खास प्रॉपर्टी को ऐनिमेट करता है. इससे पता चलता है ObjectAnimator.

विशेषताएं:

android:propertyName
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है स्ट्रिंग. ज़रूरी है. ऐनिमेट करने के लिए ऑब्जेक्ट की प्रॉपर्टी, जिसके नाम से रेफ़रंस दिया जाता है. उदाहरण के लिए, आपके पास View ऑब्जेक्ट के लिए, "alpha" या "backgroundColor". objectAnimator एलिमेंट, target को सार्वजनिक नहीं करता एट्रिब्यूट का इस्तेमाल करते हैं, इसलिए आप एक्सएमएल एलान में ऑब्जेक्ट को ऐनिमेट करने के लिए सेट नहीं कर सकते. आपको करना होगा loadAnimator() को कॉल करके अपने ऐनिमेशन एक्सएमएल रिसॉर्स को बढ़ाएं. साथ ही, सेट करने के लिए setTarget() को कॉल करें वह टारगेट ऑब्जेक्ट जिसमें यह प्रॉपर्टी शामिल है.
android:valueTo
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है फ़्लोट, पूर्णांक या रंग. ज़रूरी है. वह वैल्यू जहां ऐनिमेशन वाली प्रॉपर्टी खत्म होती है. रंग दिखाए जाते हैं छह अंकों वाले हेक्साडेसिमल नंबर, जैसे कि #333333.
android:valueFrom
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है फ़्लोट, पूर्णांक या रंग. वह वैल्यू जहां से ऐनिमेटेड प्रॉपर्टी शुरू होती है. अगर नहीं बताया गया है, तो ऐनिमेशन प्रॉपर्टी की get तरीके से मिली वैल्यू पर शुरू होता है. रंग दिखाए जाते हैं छह अंकों वाले हेक्साडेसिमल नंबर, जैसे कि #333333.
android:duration
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. ऐनिमेशन में लगने वाला समय, मिलीसेकंड में. डिफ़ॉल्ट वैल्यू 300 मिलीसेकंड है.
android:startOffset
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. मिलीसेकंड की वह अवधि जिसके बाद ऐनिमेशन देर से लगता है start() पर कॉल किया गया है.
android:repeatCount
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. किसी ऐनिमेशन को कितनी बार दोहराना है. असीम रूप से "-1" पर सेट करें दोहराने या एक धनात्मक पूर्णांक के रूप में लिखें. उदाहरण के लिए, "1" वैल्यू का मतलब है कि ऐनिमेशन शुरुआती तौर पर चलने के बाद ऐनिमेशन को एक बार दोहराया जाता है, इसलिए ऐनिमेशन कुल दो बार में से. इसकी डिफ़ॉल्ट वैल्यू "0" है, इसका मतलब है कि कोई दोहराव नहीं है.
android:repeatMode
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. ऐनिमेशन के आखिर में पहुंचने पर, ऐनिमेशन कैसे काम करता है. android:repeatCount अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस एट्रिब्यूट को लागू करने के लिए, वैल्यू को किसी पॉज़िटिव इंटीजर या "-1" पर सेट करना ज़रूरी है. "reverse" पर सेट करें हर इटरेशन के साथ ऐनिमेशन की उल्टी दिशा पाने या ऐनिमेशन के लिए "restart" देने के लिए लूप में चलाना है.
android:valueType
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कीवर्ड. अगर वैल्यू कोई रंग है, तो यह एट्रिब्यूट न बताएं. ऐनिमेशन फ़्रेमवर्क अपने-आप कलर को हैंडल करता है वैल्यू.
वैल्यूब्यौरा
intTypeइससे पता चलता है कि ऐनिमेशन वाली वैल्यू, पूर्णांक हैं.
floatType (डिफ़ॉल्ट)इससे पता चलता है कि ऐनिमेशन वाली वैल्यू फ़्लोट हैं.
<animator>
तय समय तक ऐनिमेशन करता है. ValueAnimator को दिखाता है.

विशेषताएं:

android:valueTo
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है फ़्लोट, पूर्णांक या रंग. ज़रूरी है. वह वैल्यू जहां ऐनिमेशन खत्म होता है. रंग दिखाए जाते हैं छह अंकों वाले हेक्साडेसिमल नंबर, जैसे कि #333333.
android:valueFrom
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है फ़्लोट, पूर्णांक या रंग. ज़रूरी है. वह वैल्यू जहां ऐनिमेशन शुरू होता है. रंग दिखाए जाते हैं छह अंकों वाले हेक्साडेसिमल नंबर, जैसे कि #333333.
android:duration
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. ऐनिमेशन में लगने वाला समय, मिलीसेकंड में. डिफ़ॉल्ट वैल्यू 300 मि॰से॰ है.
android:startOffset
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. मिलीसेकंड की वह अवधि जिसके बाद ऐनिमेशन देर से लगता है start() पर कॉल किया गया है.
android:repeatCount
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. किसी ऐनिमेशन को कितनी बार दोहराना है. असीम रूप से "-1" पर सेट करें दोहराने या एक धनात्मक पूर्णांक के रूप में लिखें. उदाहरण के लिए, "1" वैल्यू का मतलब है कि ऐनिमेशन शुरुआती तौर पर चलने के बाद ऐनिमेशन को एक बार दोहराया जाता है, इसलिए ऐनिमेशन कुल दो बार में से. इसकी डिफ़ॉल्ट वैल्यू "0" है, इसका मतलब है कि कोई दोहराव नहीं है.
android:repeatMode
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है int. ऐनिमेशन के आखिर में पहुंचने पर, ऐनिमेशन कैसे काम करता है. android:repeatCount अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस एट्रिब्यूट को लागू करने के लिए, वैल्यू को किसी पॉज़िटिव इंटीजर या "-1" पर सेट करना ज़रूरी है. "reverse" पर सेट करें हर इटरेशन के साथ ऐनिमेशन की उल्टी दिशा पाने या ऐनिमेशन के लिए "restart" देने के लिए लूप में चलाना है.
android:valueType
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कीवर्ड. अगर वैल्यू कोई रंग है, तो यह एट्रिब्यूट न बताएं. ऐनिमेशन फ़्रेमवर्क अपने-आप कलर को हैंडल करता है वैल्यू.
वैल्यूब्यौरा
intTypeइससे पता चलता है कि ऐनिमेशन वाली वैल्यू, पूर्णांक हैं.
floatType (डिफ़ॉल्ट)इससे पता चलता है कि ऐनिमेशन वाली वैल्यू फ़्लोट हैं.
उदाहरण:

एक्सएमएल फ़ाइल को res/animator/property_animator.xml पर सेव किया गया:

<set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>

इस ऐनिमेशन को चलाने के लिए, अपने कोड में मौजूद एक्सएमएल संसाधनों को AnimatorSet ऑब्जेक्ट में इनफ़्लेट करें. इसके बाद, सभी ऐनिमेशन के लिए टारगेट ऑब्जेक्ट सेट करें क्लिक करें. setTarget() को कॉल करने से, AnimatorSet के सभी बच्चों के लिए एक ही टारगेट ऑब्जेक्ट सेट हो जाता है. ऐसा करना आसान होता है. यह कोड बताता है कि इसे कैसे किया जा सकता है:

Kotlin

val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
    .apply {
        setTarget(myObject)
        start()
    }

Java

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.animator.property_animator);
set.setTarget(myObject);
set.start();
यह भी देखें:

ऐनिमेशन देखें

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

ट्वीन ऐनिमेशन

एक्सएमएल में तय किया गया ऐसा ऐनिमेशन जो ग्राफ़िक पर ट्रांज़िशन करता है, जैसे कि घुमाना, फ़ेडिंग, मूविंग, और स्ट्रेचिंग.

फ़ाइल की जगह:
res/anim/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है.
कंपाइल किए गए संसाधन डेटा टाइप:
Animation के लिए रिसॉर्स पॉइंटर
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Java में: R.anim.filename
एक्सएमएल में: @[package:]anim/filename
सिंटैक्स:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

फ़ाइल में एक रूट एलिमेंट होना चाहिए: या तो <alpha>, <scale>, <translate>, <rotate> या <set> एलिमेंट जो होल्ड पर रहता है दूसरे ऐनिमेशन एलिमेंट का ग्रुप (या ग्रुप) (इसमें नेस्ट किए गए <set> एलिमेंट शामिल हैं).

एलिमेंट:
<set>
एक कंटेनर, जिसमें दूसरे ऐनिमेशन एलिमेंट होते हैं (<alpha>, <scale>, <translate>, <rotate>) या अन्य <set> एलिमेंट. AnimationSet को दिखाता है.

विशेषताएं:

android:interpolator
इंटरपोलेटर संसाधन. ऐनिमेशन पर लागू करने के लिए, Interpolator. मान, किसी ऐसे संसाधन का संदर्भ होना चाहिए जो इंटरपोलेटर के बारे में बताता हो, इंटरपोलेटर क्लास का नाम नहीं है. डिफ़ॉल्ट इंटरपोलेटर हैं प्लैटफ़ॉर्म से उपलब्ध संसाधनों को ऐक्सेस करना होगा या अपना इंटरपोलेटर संसाधन खुद बनाना होगा. इंटरपोलेटर के बारे में ज़्यादा जानकारी के लिए, यहां दी गई चर्चा देखें.
android:shareInterpolator
बूलियन. "true" अगर आपको सभी चाइल्ड खातों के लिए एक ही इंटरपोलेटर का इस्तेमाल करना है एलिमेंट.
<alpha>
फ़ेड-इन या फ़ेड-आउट ऐनिमेशन. AlphaAnimation को दिखाता है.

विशेषताएं:

android:fromAlpha
फ़्लोट. ओपैसिटी ऑफ़सेट शुरू करना, जहां 0.0 पारदर्शी और 1.0 होता है ओपेक है.
android:toAlpha
फ़्लोट. ओपैसिटी ऑफ़सेट खत्म करना, जहां 0.0 पारदर्शी और 1.0 होता है ओपेक है.

<alpha> के साथ काम करने वाले और एट्रिब्यूट के लिए, क्लास का रेफ़रंस देखें Animation, जिसके एक्सएमएल एट्रिब्यूट को इस एलिमेंट से इनहेरिट किया जाता है.

<scale>
साइज़ बदलने वाला ऐनिमेशन. आप इमेज का केंद्र बिंदु बता सकते हैं जहां से यह बढ़ता है pivotX और pivotY तय करके बाहर या अंदर. उदाहरण के लिए, अगर ये मान वैल्यू 0,0 (सबसे ऊपर का बायां कोना) होती है. चुनी गई सभी सेल नीचे और दाईं तरफ़ होती हैं. ScaleAnimation को दिखाता है.

विशेषताएं:

android:fromXScale
फ़्लोट. X साइज़ ऑफ़सेट शुरू करना, जहां 1.0 में कोई बदलाव नहीं होगा.
android:toXScale
फ़्लोट. आखिरी X साइज़ ऑफ़सेट, जहां 1.0 से कोई बदलाव नहीं होगा.
android:fromYScale
फ़्लोट. Y साइज़ ऑफ़सेट शुरू हो रहा है, जहां 1.0 में कोई बदलाव नहीं होगा.
android:toYScale
फ़्लोट. Y साइज़ ऑफ़सेट खत्म हो रहा है, जहां 1.0 में कोई बदलाव नहीं होगा.
android:pivotX
फ़्लोट. ऑब्जेक्ट के स्केल किए जाने पर, X निर्देशांक का स्थिर रहना होता है.
android:pivotY
फ़्लोट. ऑब्जेक्ट के स्केल किए जाने पर, Y निर्देशांक का फ़िक्स रहता है.

<scale> के साथ काम करने वाले और एट्रिब्यूट के लिए, क्लास का रेफ़रंस देखें Animation, जिसके एक्सएमएल एट्रिब्यूट को इस एलिमेंट से इनहेरिट किया जाता है.

<translate>
वर्टिकल और/या हॉरिज़ॉन्टल मोशन. इससे पता चलता है कि TranslateAnimation. इन तीन में से किसी भी फ़ॉर्मैट में ये एट्रिब्यूट इस्तेमाल किए जा सकते हैं:
  • -100 से 100 तक की वैल्यू, जिनके आखिर में "%" है, जो प्रतिशत दिखाता है उससे संबंधित है.
  • वैल्यू, -100 से 100 तक की हैं जिनके आखिर में "%p" है, जो इसकी वैल्यू से जुड़ी वैल्यू का प्रतिशत है पैरंट.
  • बिना सफ़िक्स वाली फ़्लोट वैल्यू, जो निरपेक्ष मान दिखाती है.

विशेषताएं:

android:fromXDelta
फ़्लोट या प्रतिशत. X ऑफ़सेट शुरू हो रहा है. पिक्सल के हिसाब से दिखाया गया सामान्य पोज़िशन पर किया जाए, जैसे कि "5"; प्रतिशत में एलिमेंट की चौड़ाई के मुताबिक होना चाहिए, जैसे कि "5%"; या पैरंट चौड़ाई के हिसाब से प्रतिशत में, जैसे कि "5%p".
android:toXDelta
फ़्लोट या प्रतिशत. X ऑफ़सेट को खत्म करना. पिक्सल के हिसाब से दिखाया गया सामान्य पोज़िशन पर किया जाए, जैसे कि "5"; प्रतिशत में एलिमेंट की चौड़ाई के मुताबिक होना चाहिए, जैसे कि "5%"; या पैरंट चौड़ाई के हिसाब से प्रतिशत में, जैसे कि "5%p".
android:fromYDelta
फ़्लोट या प्रतिशत. Y ऑफ़सेट शुरू हो रहा है. पिक्सल के हिसाब से दिखाया गया सामान्य पोज़िशन पर किया जाए, जैसे कि "5"; प्रतिशत में एलिमेंट की ऊंचाई के मुताबिक होना चाहिए, जैसे कि "5%"; या पैरंट के साइज़ के हिसाब से प्रतिशत में, जैसे कि "5%p".
android:toYDelta
फ़्लोट या प्रतिशत. Y ऑफ़सेट को खत्म करना. पिक्सल के हिसाब से दिखाया गया सामान्य पोज़िशन पर किया जाए, जैसे कि "5"; प्रतिशत में एलिमेंट की ऊंचाई के मुताबिक, जैसे कि "5%"; या पैरंट के साइज़ के हिसाब से प्रतिशत में, जैसे कि "5%p".

<translate> के साथ काम करने वाले और एट्रिब्यूट के लिए, क्लास का रेफ़रंस देखें Animation, जिसके एक्सएमएल एट्रिब्यूट को इस एलिमेंट से इनहेरिट किया जाता है.

<rotate>
एक रोटेशन ऐनिमेशन. RotateAnimation को दिखाता है.

विशेषताएं:

android:fromDegrees
फ़्लोट. डिग्री में, कोणीय स्थिति से शुरू.
android:toDegrees
फ़्लोट. डिग्री में आखिरी कोणीय स्थिति.
android:pivotX
फ़्लोट या प्रतिशत. घूर्णन के केंद्र का X निर्देशांक. एक्सप्रेस किया गया ऑब्जेक्ट के बाएं किनारे से जुड़े पिक्सल में, जैसे कि "5"; प्रतिशत के हिसाब से ऑब्जेक्ट के बाएं किनारे तक, जैसे कि "5%"; या पैरंट की तुलना में प्रतिशत में कंटेनर का बायां किनारे, जैसे कि "5%p".
android:pivotY
फ़्लोट या प्रतिशत. रोटेशन के केंद्र का Y निर्देशांक. एक्सप्रेस किया गया ऑब्जेक्ट के सबसे ऊपरी किनारे से जुड़े पिक्सल में, जैसे कि "5"; प्रतिशत के हिसाब से ऑब्जेक्ट के सबसे ऊपरी किनारे तक जाएं, जैसे कि "5%"; या पैरंट की तुलना में प्रतिशत में कंटेनर का ऊपरी किनारे, जैसे कि "5%p".

<rotate> के साथ काम करने वाले और एट्रिब्यूट के लिए, क्लास का रेफ़रंस देखें Animation, जिसके एक्सएमएल एट्रिब्यूट को इस एलिमेंट से इनहेरिट किया जाता है.

उदाहरण:

एक्सएमएल फ़ाइल को res/anim/hyperspace_jump.xml पर सेव किया गया:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
    <set
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="700">
        <scale
            android:fromXScale="1.4"
            android:toXScale="0.0"
            android:fromYScale="0.6"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-45"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
    </set>
</set>

नीचे दिया गया ऐप्लिकेशन कोड, ऐनिमेशन को ImageView और ऐनिमेशन शुरू करता है:

Kotlin

val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
image.startAnimation(hyperspaceJump)

Java

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
यह भी देखें:

इंटरपोलेटर

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

android:interpolator वाले ऐनिमेशन एलिमेंट पर इंटरपोलेटर लागू किया जाता है विशेषता है, जिसका मान किसी इंटरपोलेटर संसाधन का संदर्भ है.

Android में उपलब्ध सभी इंटरपोलेटर, Interpolator क्लास की सब-क्लास हैं. हर इंटरपोलेटर क्लास के लिए, Android में एक सार्वजनिक संसाधन है, जिसका संदर्भ आप किसी ऐनिमेशन में इंटरपोलेटर लागू करने के लिए दे सकते हैं android:interpolator एट्रिब्यूट का इस्तेमाल करके. नीचे दी गई टेबल में हर इंटरपोलेटर के लिए इस्तेमाल किए जाने वाले संसाधन के बारे में बताया गया है:

इंटरपोलेटर क्लाससंसाधन आईडी
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
AccelerateInterpolator @android:anim/accelerate_interpolator
AnticipateInterpolator @android:anim/anticipate_interpolator
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
BounceInterpolator @android:anim/bounce_interpolator
CycleInterpolator @android:anim/cycle_interpolator
DecelerateInterpolator @android:anim/decelerate_interpolator
LinearInterpolator @android:anim/linear_interpolator
OvershootInterpolator @android:anim/overshoot_interpolator

यहां बताया गया है कि android:interpolator एट्रिब्यूट की मदद से, इनमें से किसी एक को कैसे लागू किया जा सकता है:

<set android:interpolator="@android:anim/accelerate_interpolator">
    ...
</set>

कस्टम इंटरपोलेटर

अगर आप प्लैटफ़ॉर्म से मिले इंटरपोलेटर से संतुष्ट नहीं हैं, तो आप बदले गए एट्रिब्यूट वाला कस्टम इंटरपोलेटर संसाधन बना सकते हैं. उदाहरण के लिए, आप विज्ञापनों की दर AnticipateInterpolator के लिए एक्सेलरेटर करें या CycleInterpolator के लिए साइकल चलाना. ऐसा करने के लिए, आपको किसी एक्सएमएल फ़ाइल में अपना खुद का इंटरपोलेटर संसाधन बनाएं.

फ़ाइल की जगह:
res/anim/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है.
कंपाइल किए गए संसाधन डेटा टाइप:
इससे जुड़े इंटरपोलेटर ऑब्जेक्ट के लिए रिसॉर्स पॉइंटर
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एक्सएमएल में: @[package:]anim/filename
सिंटैक्स:
<?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
    android:attribute_name="value"
    />

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

एलिमेंट:
ध्यान दें कि हर Interpolator को लागू करने पर, जब एक्सएमएल में दी गई जानकारी का एक नाम है, जो अंग्रेज़ी के छोटे अक्षर से शुरू होता है.

<accelerateDecelerateInterpolator>
बदलाव की दर धीरे-धीरे शुरू और खत्म होती है. हालांकि, यह समय के साथ-साथ बीच में.

कोई एट्रिब्यूट मौजूद नहीं है.

<accelerateInterpolator>
बदलाव की दर धीरे-धीरे शुरू होती है और फिर तेज़ी से बढ़ती है.

विशेषताएं:

android:factor
फ़्लोट. रफ़्तार की दर. डिफ़ॉल्ट वैल्यू एक होती है.
<anticipateInterpolator>
बदलाव की शुरुआत पहले की जाती है और फिर आगे की ओर हो जाती है.

विशेषताएं:

android:tension
फ़्लोट. लागू किया जाने वाला तनाव. डिफ़ॉल्ट वैल्यू दो होती है.
<anticipateOvershootInterpolator>
बदलाव की शुरुआत पीछे की ओर होती है और फिर आगे की ओर बढ़ जाती है और टारगेट वैल्यू से ज़्यादा बढ़ जाती है. इसके बाद, आखिरी वैल्यू पर तय होता है.

विशेषताएं:

android:tension
फ़्लोट. लागू किया जाने वाला तनाव. डिफ़ॉल्ट वैल्यू दो होती है.
android:extraTension
फ़्लोट. वह राशि जिससे तनाव को गुणा करना है. डिफ़ॉल्ट सेटिंग यह है 1.5.
<bounceInterpolator>
बदलाव, आखिर में बाउंस हो जाता है.

कोई एट्रिब्यूट मौजूद नहीं है

<cycleInterpolator>
ऐनिमेशन को तय साइकल के लिए दोहराया जाएगा. बदलाव की दर, साइनसोइडल पैटर्न.

विशेषताएं:

android:cycles
पूरी संख्या. साइकल की संख्या. डिफ़ॉल्ट वैल्यू एक होती है.
<decelerateInterpolator>
बदलाव की दर तेज़ी से शुरू होती है और फिर कम हो जाती है.

विशेषताएं:

android:factor
फ़्लोट. ह्रास दर. डिफ़ॉल्ट वैल्यू एक होती है.
<linearInterpolator>
बदलाव की दर लगातार बनी रहती है.

कोई एट्रिब्यूट मौजूद नहीं है.

<overshootInterpolator>
बदलाव तेज़ी से आगे बढ़ता है और आखिरी वैल्यू को ओवरशॉट करता है. इसके बाद, वापस आता है.

विशेषताएं:

android:tension
फ़्लोट. लागू किया जाने वाला तनाव. डिफ़ॉल्ट वैल्यू दो होती है.
उदाहरण:

एक्सएमएल फ़ाइल को res/anim/my_overshoot_interpolator.xml पर सेव किया गया:

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"
    />

यह ऐनिमेशन एक्सएमएल, इंटरपोलेटर पर लागू होता है:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    android:fromXScale="1.0"
    android:toXScale="3.0"
    android:fromYScale="1.0"
    android:toYScale="3.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" />

फ़्रेम ऐनिमेशन

एक्सएमएल में तय किया गया ऐनिमेशन, जिसमें इमेज का कोई क्रम दिखाया जाता है, जैसे कि फ़िल्म.

फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है.
कंपाइल किए गए संसाधन डेटा टाइप:
AnimationDrawable के लिए रिसॉर्स पॉइंटर
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Java में: R.drawable.filename
एक्सएमएल में: @[package:]drawable.filename
सिंटैक्स:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource_name"
        android:duration="integer" />
</animation-list>
एलिमेंट:
<animation-list>
ज़रूरी है. यह रूट एलिमेंट होना चाहिए. एक या एक से ज़्यादा फ़ाइलें शामिल हैं <item> एलिमेंट.

विशेषताएं:

android:oneshot
बूलियन. "true" अगर आपको ऐनिमेशन का इस्तेमाल एक बार करना है, लूप करने के लिए "false" ऐनिमेशन.
<item>
ऐनिमेशन का एक फ़्रेम. <animation-list> एलिमेंट का चाइल्ड होना चाहिए.

विशेषताएं:

android:drawable
ड्रॉ करने लायक संसाधन. इस फ़्रेम के लिए उपयोग के लिए ड्रॉबल.
android:duration
पूरी संख्या. इस फ़्रेम को दिखाने की अवधि, मिलीसेकंड में.
उदाहरण:

एक्सएमएल फ़ाइल को res/drawable/rocket_thrust.xml पर सेव किया गया:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

यह ऐप्लिकेशन कोड, ऐनिमेशन को View के लिए बैकग्राउंड के तौर पर सेट करता है, फिर ऐनिमेशन चलाएं:

Kotlin

val rocketImage: ImageView = findViewById(R.id.rocket_image)
rocketImage.setBackgroundResource(R.drawable.rocket_thrust)

val rocketAnimation = rocketImage.background
if (rocketAnimation is Animatable) {
    rocketAnimation.start()
}

Java

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = rocketImage.getBackground();
if (rocketAnimation instanceof Animatable) {
    ((Animatable)rocketAnimation).start();
}
यह भी देखें: