TransitionManager ও Slide ট্রানজিশন দিয়ে স্লাইড অ্যানিমেশন
Android-এ TransitionManager এবং Slide ট্রানজিশন ব্যবহার করে ভিউ স্লাইড-ইন/আউট এনিমেশন করার পদ্ধতি।
ধাপ ১: প্রজেক্ট তৈরি
Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট (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:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
tools:context=".MainActivity">
<Button
android:id="@+id/btnSlideLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="Slide Left" />
<Button
android:id="@+id/btnSlideRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnSlideLeft"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="Slide Right" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Cristiano Ronaldo is the Best Player in the World"
android:textSize="16sp"
android:textStyle="bold"
android:visibility="invisible" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textView"
android:layout_centerInParent="true"
android:text="Messi is the Best Player in the World"
android:textSize="16sp"
android:textStyle="bold"
android:visibility="invisible" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.transition.Slide;
import android.transition.TransitionManager;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button btnSlideLeft, btnSlideRight;
TextView textView, textView1;
RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
textView1 = findViewById(R.id.textView1);
btnSlideLeft = findViewById(R.id.btnSlideLeft);
btnSlideRight = findViewById(R.id.btnSlideRight);
relativeLayout = findViewById(R.id.relativeLayout);
// বাম থেকে স্লাইড (START = বাম LTR-এ)
btnSlideLeft.setOnClickListener(v -> {
Slide slide = new Slide();
slide.setSlideEdge(Gravity.START); // Gravity.LEFT ও কাজ করবে
slide.setDuration(500); // মিলিসেকেন্ড
TransitionManager.beginDelayedTransition(relativeLayout, slide);
textView.setVisibility(View.VISIBLE);
});
// ডান থেকে স্লাইড (END = ডান LTR-এ)
btnSlideRight.setOnClickListener(v -> {
Slide slide = new Slide();
slide.setSlideEdge(Gravity.END); // Gravity.RIGHT
slide.setDuration(500);
TransitionManager.beginDelayedTransition(relativeLayout, slide);
textView1.setVisibility(View.VISIBLE);
});
}
}
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.slideanimation">
<application ...>
<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>
Slide Edge অপশনস
| Gravity Constant | দিক | ব্যবহার |
|---|---|---|
Gravity.START | বাম (LTR), ডান (RTL) | স্থানীয়করণ-সচেতন |
Gravity.END | ডান (LTR), বাম (RTL) | স্থানীয়করণ-সচেতন |
Gravity.LEFT | সবসময় বাম | ফিক্সড |
Gravity.RIGHT | সবসময় ডান | ফিক্সড |
Gravity.TOP | উপরে থেকে | ভার্টিক্যাল স্লাইড |
Gravity.BOTTOM | নিচে থেকে | ভার্টিক্যাল স্লাইড |
আরও ট্রানজিশন টাইপ
Fade- ফেড ইন/আউটExplode- স্ক্রিনের বাইরে থেকে বিস্ফোরণ করে এসেAutoTransition- ডিফল্ট (Fade + Move + Resize)ChangeBounds- লেআউট বাউন্ডস পরিবর্তনChangeTransform- স্কেল/রোটেশন পরিবর্তন
XML-এ ট্রানজিশন ডিফাইন করা (res/transition/slide_transition.xml)
<?xml version="1.0" encoding="utf-8"?>
<slide xmlns:android="https://schemas.android.com/apk/res/android"
android:slideEdge="start"
android:duration="500" />
Java-এ: Transition slide = TransitionInflater.from(this).inflateTransition(R.transition.slide_transition);
Activity ট্রানজিশন (স্ক্রিন যাওয়া-আসার সময়)
//styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowEnterTransition">@transition/slide_transition</item>
<item name="android:windowExitTransition">@transition/slide_transition</item>
</style>