কম্পিউটার টিউটোরিয়াল

Android-এ Left-to-Right স্লাইড অ্যানিমেশন তৈরি

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>
  1. অ্যান্ড্রয়েডে টেক্সট ফাইল তৈরি করে ডেটা লিখার পদ্ধতি

  2. অ্যান্ড্রয়েডে কাস্টম নোটিফিকেশন লেআউট ও টেক্সট কালার তৈরি করা

  3. Android-এ XML ফাইল ব্যবহার করে অ্যানিমেশন তৈরির পদ্ধতি

  4. পাওয়ারপয়েন্ট স্লাইডে জুম অ্যানিমেশন ইফেক্ট তৈরি করার পদ্ধতি