परिचय
यह ट्यूटोरियल दिखाता है कि Android में XML फाइलों से एनिमेशन कैसे परिभाषित करें और उन्हें व्यूज़ पर लागू करें। हम तीन प्रकार की एनिमेशन बनाएंगे: फेड-इन (अल्फा), जूम (स्केल), और ब्लिंक (रिपीटिंग अल्फा)।
आवश्यक चरण
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project से नया प्रोजेक्ट बनाएं।
चरण 2: मुख्य लेआउट (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:padding="4dp"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:textSize="24sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="आपका दिन शुभ हो!"
android:layout_centerInParent="true" />
<Button
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="एनिमेशन शुरू करें" />
</RelativeLayout>
चरण 3: एनिमेशन रिसोर्स फाइल्स बनाएं
res/anim/ डायरेक्टरी बनाएं (Android Resource Directory → anim टाइप) और ये फाइलें जोड़ें:
myanim.xml - फेड इन (अल्फा)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="https://schemas.android.com/apk/res/android"
android:fillAfter="true">
<alpha
android:duration="1000"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
</set>
zoom.xml - जूम/स्केल
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="https://schemas.android.com/apk/res/android"
android:fillAfter="true">
<scale
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="3"
android:toYScale="3">
</scale>
</set>
blink.xml - ब्लिंक (रिपीटिंग)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="https://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="600"
android:repeatMode="reverse"
android:repeatCount="infinite" />
</set>
चरण 4: मुख्य गतिविधि (src/MainActivity.java)
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements Animation.AnimationListener {
TextView textView;
Button button;
Animation animation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
button = findViewById(R.id.button);
// ब्लिंक एनिमेशन लोड करें
animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink);
animation.setAnimationListener(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setVisibility(View.VISIBLE);
textView.startAnimation(animation);
}
});
}
@Override
public void onAnimationStart(Animation animation) {
// एनिमेशन शुरू होने पर
}
@Override
public void onAnimationEnd(Animation animation) {
// एनिमेशन खत्म होने पर (रिपीट मोड में नहीं आएगा)
}
@Override
public void onAnimationRepeat(Animation animation) {
// प्रत्येक रिपीट पर
}
}
चरण 5: मैनिफेस्ट फ़ाइल (AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run क्लिक करें। "एनिमेशन शुरू करें" बटन दबाएं - टेक्स्ट ब्लिंक करना शुरू करेगा।

एनिमेशन प्रकार और विशेषताएं
| एनिमेशन | टैग | मुख्य एट्रिब्यूट्स |
|---|---|---|
| फेड इन/आउट | <alpha> | fromAlpha, toAlpha, duration |
| स्केल/जूम | <scale> | fromXScale, toXScale, pivotX, pivotY |
| ट्रांसलेट (मूव) | <translate> | fromXDelta, toXDelta, fromYDelta, toYDelta |
| रोटेट | <rotate> | fromDegrees, toDegrees, pivotX, pivotY |
महत्वपूर्ण बिंदु
android:fillAfter="true"- एनिमेशन खत्म होने पर अंतिम स्थिति बनाए रखता है।android:repeatCount="infinite"- अनंत लूप। संख्या देकर सीमित करें।android:repeatMode="reverse"- आगे-पीछे चलता है (ब्लिंक इफेक्ट के लिए)।Interpolator- गति वक्र: accelerate, decelerate, bounce, linear, आदि।- आधुनिक विकल्प: MotionLayout, AnimatedVectorDrawable, या Jetpack Compose Animation API।