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

Android-এ View-এর ব্যাকগ্রাউন্ড কালার এনিমেট করার পদ্ধতি

TransitionDrawable দিয়ে রঙ পরিবর্তন এনিমেশন

এই উদাহরণে TransitionDrawable ব্যবহার করে একটি View-এর ব্যাকগ্রাউন্ড কালার মượtভাবে পরিবর্তন করার কোড দেওয়া হলো।

ধাপ ১: প্রজেক্ট তৈরি

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/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/textView"
        android:layout_centerInParent="true"
        android:layout_marginBottom="15dp"
        android:text="Animate Background Color" />
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Changing Background color of this view."
        android:textSize="36sp"
        android:textStyle="bold" />
</RelativeLayout>

ধাপ ৩: MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        button = findViewById(R.id.button);
        textView = findViewById(R.id.textView);
        
        button.setOnClickListener(v -> {
            // রঙের অ্যারে তৈরি করুন
            ColorDrawable[] colorDrawables = {
                new ColorDrawable(Color.RED),
                new ColorDrawable(Color.BLUE),
                new ColorDrawable(Color.GREEN)
            };
            
            // TransitionDrawable তৈরি করুন
            TransitionDrawable transitionDrawable = new TransitionDrawable(colorDrawables);
            
            // ব্যাকগ্রাউন্ড সেট করুন
            textView.setBackground(transitionDrawable);
            
            // ২ সেকেন্ডে ট্রানজিশন শুরু করুন
            transitionDrawable.startTransition(2000);
        });
    }
}

ধাপ ৪: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.coloranimation">
    <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>

অতিরিক্ত এনিমেশন পদ্ধতি (আধুনিক)

ObjectAnimator ব্যবহার (API 11+)

ObjectAnimator animator = ObjectAnimator.ofObject(
    textView, 
    "backgroundColor", 
    new ArgbEvaluator(), 
    Color.RED, Color.BLUE, Color.GREEN
);
animator.setDuration(2000);
animator.start();

ValueAnimator + setBackgroundColor (সহজ)

ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), Color.RED, Color.BLUE);
colorAnimation.setDuration(2000);
colorAnimation.addUpdateListener(animator -> 
    textView.setBackgroundColor((int) animator.getAnimatedValue())
);
colorAnimation.start();

XML-এ ডিফাইন করা (res/drawable/color_transition.xml)

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="https://schemas.android.com/apk/res/android">
    <item android:drawable="@color/red" />
    <item android:drawable="@color/blue" />
    <item android:drawable="@color/green" />
</transition>

Java-এ: TransitionDrawable td = (TransitionDrawable) getResources().getDrawable(R.drawable.color_transition);

পারফরম্যান্স টিপস

  • জটিল লেআউটে ব্যাকগ্রাউন্ড এনিমেশন ল্যাগ করতে পারে - setLayerType(LAYER_TYPE_HARDWARE, null) ব্যবহার করুন
  • রঙের সংখ্যা কম রাখুন (২-৩টি ভালো)
  • দূরত্ব বেশি হলে duración বাড়ান (৩০০০-৫০০০ ms)
  1. ActionBarActivity-এর ActionBar-এর ব্যাকগ্রাউন্ড রঙ কীভাবে পরিবর্তন করবেন?

  2. অ্যান্ড্রয়েডে অপশন মেনুর ব্যাকগ্রাউন্ড রঙ পরিবর্তন করার পদ্ধতি

  3. আউটলুক ক্যালেন্ডারের ব্যাকগ্রাউন্ড রঙ পরিবর্তন করার উপায়

  4. iOS-এ নোটস অ্যাপের ব্যাকগ্রাউন্ড কালার পরিবর্তন করার পদ্ধতি