View Animation — क्या है, Android में Tween Animation

लेखक: IT Sectr प्रकाशित: 2026-03-01 पढ़ने का समय: 8 मिनट

View Animation — Android API 1+ की एक पुरानी एनिमेशन प्रणाली है जो Tween Animation (Alpha, Translate, Scale, Rotate) के माध्यम से View-ऑब्जेक्ट्स के साथ काम करती है। Google सभी नए प्रोजेक्ट्स के लिए Property Animation (Animator) की सिफारिश करता है। यह लेख सिद्धांतों, प्रकारों, XML मार्कअप और छोड़ने के कारणों की व्याख्या करता है।

मुख्य बिंदु

  • View Animation — Tween Animation के माध्यम से View को एनिमेट करता है: Alpha, Translate, Scale, Rotate
  • XML परिभाषा — एनिमेशन res/anim/ में , , , का उपयोग करके वर्णित किए जाते हैं
  • AnimationSet — सामान्य पैरामीटर के साथ एक सेट में कई एनिमेशन का संयोजन
  • सीमा — View Animation गुणों को नहीं बदलता, केवल रेंडरिंग बदलता है: View अपनी मूल स्थिति पर रहता है
  • Property Animation — आधुनिक प्रतिस्थापन (Animator) जो वास्तविक ऑब्जेक्ट गुणों के साथ काम करता है

View Animation क्या है?

View Animation Android का एक एनिमेशन उपतंत्र है जो View स्तर (API 1+) पर काम करता है। यह चार प्रकार के Tween Animation का उपयोग करता है: AlphaAnimation (पारदर्शिता), TranslateAnimation (गति), ScaleAnimation (स्केल) और RotateAnimation (घूर्णन)। प्रत्येक एनिमेशन res/anim/ फ़ोल्डर में XML फ़ाइल में वर्णित किया जाता है या Kotlin कोड में प्रोग्रामेटिक रूप से बनाया जाता है।

View Animation तंत्र View के वास्तविक गुणों को नहीं बदलता — वह View को नई स्थिति, स्केल या पारदर्शिता में पुनः चित्रित करता है, लेकिन onTouchEvent() कॉलबैक मूल स्थान के निर्देशांक प्राप्त करता है। यह एक मुख्य सीमा है जिसे क्लिक बेमेल (click mismatch) के रूप में जाना जाता है।

Android डेवलपर दस्तावेज़ीकरण (2026) के अनुसार, Google ने Android 3.0 (API 11) से View Animation को पदावनत API के रूप में चिह्नित किया है। नए प्रोजेक्ट्स के लिए Property Animation की सिफारिश की जाती है — Animator, AnimatorSet और ObjectAnimator, जो setter विधियों के माध्यम से वास्तविक ऑब्जेक्ट गुणों के साथ काम करते हैं।

Tween Animation के प्रकार

Tween Animation मुख्य फ्रेमों के “बीच” की एनिमेशन है: आप प्रारंभिक और अंतिम स्थिति निर्धारित करते हैं, और सिस्टम मध्यवर्ती फ्रेमों की गणना करता है। Android चार मानक प्रकार प्रदान करता है, प्रत्येक अपने स्वयं के पैरामीटर सेट के साथ।

AlphaAnimation

AlphaAnimation View की पारदर्शिता को fromAlpha से toAlpha तक बदलता है। मान 0.0 (पूरी तरह पारदर्शी) से 1.0 (पूरी तरह दृश्यमान) तक होते हैं। डिफ़ॉल्ट रूप से, एनिमेशन 300 ms तक चलता है। पैरामीटर fillAfter=true View को अंतिम पारदर्शिता स्थिति में छोड़ देता है।

xml
<!-- res/anim/fade_out.xml -->
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="500"
    android:fillAfter="true" />

TranslateAnimation

TranslateAnimation View को प्रारंभिक स्थिति (fromXDelta, fromYDelta) से अंतिम स्थिति (toXDelta, toYDelta) तक ले जाता है। मान पिक्सेल, पैरेंट के प्रतिशत या View के प्रतिशत में निर्दिष्ट किए जाते हैं। उदाहरण के लिए, 100% का अर्थ View की चौड़ाई का 100% है।

ScaleAnimation

ScaleAnimation View को pivotX/pivotY बिंदु के सापेक्ष स्केल करता है। fromXScale=1.0, toXScale=2.0 चौड़ाई को दोगुना करता है। पैरामीटर pivotType यह निर्धारित करता है कि पिवट किसके सापेक्ष गणना की जाती है: self, parent या absolute। स्केल एनिमेशन View के वास्तविक आयामों को नहीं बदलता — केवल रेंडरिंग को बदलता है।

RotateAnimation

RotateAnimation View को एक पिवट बिंदु के चारों ओर fromDegrees से toDegrees तक के कोण पर घुमाता है। कोण डिग्री में मापा जाता है: 0 मूल स्थिति है, 360 पूर्ण घूर्णन है। अनंत घूर्णन के लिए, repeatCount=INFINITE का उपयोग करें।

View Animation बनाम Property Animation

View Animation और Property Animation (Animator) के बीच का अंतर Android एनिमेशन आर्किटेक्चर में एक मूलभूत अंतर है। View Animation केवल रेंडरिंग पर काम करता है, जबकि Property Animation setter विधियों के माध्यम से वास्तविक ऑब्जेक्ट गुणों को बदलता है, जिससे लेआउट अपडेट होता है।

मानदंडView AnimationProperty Animation
API स्तरAPI 1+ (पदावनत)API 11+ (अनुशंसित)
क्या एनिमेट करता हैView रेंडरिंग (canvas)ऑब्जेक्ट गुण (setter)
एनिमेशन के बाद क्लिकमूल स्थिति परनई स्थिति पर
एनिमेशन प्रकार4 Tween + AnimationSetObjectAnimator, ValueAnimator, AnimatorSet
LayoutParamsनहीं बदलताsetLayoutParams के माध्यम से बदलता है
प्रदर्शनउच्च (केवल canvas)मध्यम (setter पर निर्भर)

एनिमेशन का XML कॉन्फ़िगरेशन

View Animation आमतौर पर res/anim/ में XML फ़ाइलों में मूल तत्व (AnimationSet) या चार प्रकारों में से एक के साथ परिभाषित किया जाता है। AnimationSet साझा पैरामीटर जैसे startOffset, duration, interpolator के साथ एनिमेशन को संयोजित करने की अनुमति देता है।

xml
<!-- res/anim/bounce.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/bounce_interpolator">

    <translate
        android:fromYDelta="0%"
        android:toYDelta="-100%"
        android:duration="600" />

    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.3"
        android:duration="600" />
</set>

XML फ़ाइल AnimationUtils.loadAnimation() के माध्यम से लोड की जाती है। Interpolator यह निर्धारित करता है कि पैरामीटर समय के साथ कैसे बदलता है: accelerate, decelerate, bounce, overshoot। कस्टम Interpolator XML संसाधन @anim/interpolator_name के माध्यम से बनाया जाता है।

सामान्य गुण

सभी Tween एनिमेशन गुणों का समर्थन करते हैं: duration (ms), startOffset (शुरू करने से पहले विलंब), repeatCount, repeatMode (restart/reverse), fillEnabled, fillBefore, fillAfter, interpolator। fillAfter गुण यह निर्धारित करता है कि View पूरा होने के बाद एनिमेशन की अंतिम स्थिति में रहता है या नहीं।

Kotlin में कोड उदाहरण

हालाँकि एनिमेशन आमतौर पर XML में परिभाषित किए जाते हैं, उन्हें Kotlin का उपयोग करके प्रोग्रामेटिक रूप से भी बनाया जा सकता है। प्रोग्रामेटिक दृष्टिकोण गतिशील पैरामीटर के लिए उपयोगी है: पारदर्शिता मान स्थिर रूप से परिभाषित होने के बजाय एप्लिकेशन स्थिति पर निर्भर करता है।

kotlin
// Kotlin में प्रोग्रामेटिक रूप से AlphaAnimation बनाना
import android.view.animation.AlphaAnimation
import android.view.animation.Animation
import android.view.View

fun View.fadeOut(duration: Long = 500L, onEnd: () -> Unit = {}) {
    val animation = AlphaAnimation(1.0f, 0.0f).apply {
        this.duration = duration
        fillAfter = true
        setAnimationListener(object : Animation.AnimationListener {
            override fun onAnimationEnd(animation: Animation?) { onEnd() }
            override fun onAnimationStart(animation: Animation?) {}
            override fun onAnimationRepeat(animation: Animation?) {}
        })
    }
    startAnimation(animation)
}

// XML से एनिमेशन लोड करना
val bounceAnim = AnimationUtils.loadAnimation(context, R.anim.bounce)
view.startAnimation(bounceAnim)

// AnimationSet — एनिमेशन का संयोजन
val set = AnimationSet(true).apply {
    addAnimation(TranslateAnimation(0f, 200f, 0f, 0f).apply { duration = 400 })
    addAnimation(RotateAnimation(0f, 360f).apply {
        duration = 400
        pivotX = view.width / 2f
        pivotY = view.height / 2f
    })
}
view.startAnimation(set)

startAnimation() विधि View की रेंडरिंग कतार में एनिमेशन जोड़ती है। इसे रद्द करने के लिए clearAnimation() का उपयोग करें। महत्वपूर्ण: fillAfter=true LayoutParams को नहीं बदलता — जब startAnimation फिर से कॉल किया जाता है, तो एनिमेशन View की मूल स्थिति से शुरू होता है, अंतिम रेंडर की गई स्थिति से नहीं।

View Animation का उपयोग कब करें?

View Animation का 2026 में अनुप्रयोग का एक संकीर्ण दायरा है: Android 4.x (API 16-19) के लिए समर्थन जहाँ Property Animation अस्थिर रूप से काम कर सकता है; सरल प्रकट/गायब प्रभाव जिनमें LayoutParams परिवर्तन की आवश्यकता नहीं होती; एनिमेशन जहाँ क्लिक बेमेल महत्वपूर्ण नहीं है (जैसे, पृष्ठभूमि तत्व)। अन्य सभी मामलों के लिए, Google ObjectAnimator या AnimatorSet पर स्विच करने की सिफारिश करता है।

Android डेवलपर्स के अनुसार, Property Animation मेमोरी में 15-20% अधिक कुशल है क्योंकि यह मध्यवर्ती canvas फ्रेम नहीं बनाता। View Animation से Property Animation पर स्विच करने से क्लिक बेमेल समस्या भी समाप्त होती है: एनिमेशन के बाद View अपनी नई स्थिति में स्पर्श प्राप्त करता है।

अक्सर पूछे जाने वाले प्रश्न

View Animation, Property Animation से कैसे अलग है?

View Animation केवल View की रेंडरिंग बदलता है — एनिमेशन के बाद, View स्पर्श घटनाओं के लिए अपनी मूल स्थिति पर रहता है। Property Animation ऑब्जेक्ट के वास्तविक गुणों को बदलता है, जो LayoutParams को अपडेट करता है और नई स्थिति में क्लिक को सही ढंग से संभालता है।

View Animation को पदावनत क्यों माना जाता है?

Google ने Android 3.0 (API 11) से View Animation को पदावनत घोषित किया। कारण क्लिक बेमेल (click mismatch) और मनमाने ऑब्जेक्ट गुणों को एनिमेट करने में असमर्थता है। Property Animation इन समस्याओं को हल करता है और सभी नए प्रोजेक्ट्स के लिए अनुशंसित है।

क्या बटन एनिमेशन के लिए View Animation का उपयोग किया जा सकता है?

इसका उपयोग किया जा सकता है लेकिन अनुशंसित नहीं है। TranslateAnimation के बाद एक बटन नए स्थान पर दिखाई देगा, लेकिन क्लिक मूल स्थिति पर ही पंजीकृत होंगे। बटन के लिए, Property Animation या Jetpack Compose में AnimatedVisibility के साथ composable का उपयोग करें।

View Animation को प्रोग्रामेटिक रूप से कैसे रद्द करें?

view.clearAnimation() को कॉल करें। यदि एनिमेशन fillAfter=true के साथ शुरू किया गया था, तो View अपनी अंतिम स्थिति में रहेगा। मूल स्थिति में वापस जाने के लिए, clearAnimation() और invalidate() को कॉल करें।

सारांश

  • View Animation — Android में चार प्रकारों वाली एक पुरानी Tween एनिमेशन प्रणाली: Alpha, Translate, Scale, Rotate
  • XML मार्कअप res/anim/ में , , , तत्वों और मूल के साथ
  • AnimationSet साझा startOffset, duration, interpolator के साथ एनिमेशन को जोड़ता है
  • क्लिक बेमेल — एनिमेशन के बाद View स्पर्श घटनाओं के लिए मूल स्थिति पर रहता है
  • Property Animation — ObjectAnimator, AnimatorSet के माध्यम से आधुनिक प्रतिस्थापन, वास्तविक गुणों के साथ काम करता है
  • fillAfter View को अंतिम स्थिति में छोड़ता है लेकिन LayoutParams नहीं बदलता
  • माइग्रेशन Property Animation पर क्लिक बेमेल को समाप्त करता है और प्रदर्शन में 15-20% सुधार करता है

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें