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

অ্যান্ড্রয়েডে এক্টিভিটির মাঝপথে Drawable পাস করা

Intent-এর মাধ্যমে এক্টিভিটিতে ড্রয়েবল রিসোর্স আইডি পাস করা

এই উদাহরণটি দেখাবে কীভাবে একটি ড্রয়েবল রিসোর্সের INTEGER ID (R.drawable.xxx) Intent-এ পुट করে দ্বিতীয় এক্টিভিটিতে পাঠানো এবং সেখানে ImageView-এ সেট করা যায়।

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

Android Studio-তে File → New Project নির্বাচন করুন।

ধাপ ২: প্রথম লেআউট (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:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:text="Transfer Bitmap to 2nd Activity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

ধাপ ৩: প্রথম এক্টিভিটি (src/MainActivity.java)

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button button;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                // ড্রয়েবল রিসোর্স আইডি পাস করুন
                intent.putExtra("picture", R.drawable.ic_directions_walk);
                startActivity(intent);
            }
        });
    }
}

ধাপ ৪: দ্বিতীয় এক্টিভিটি (SecondActivity.java)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

public class SecondActivity extends AppCompatActivity {
    ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        imageView = findViewById(R.id.imageView);
        Bundle bundle = getIntent().getExtras();

        if (bundle != null) {
            int picture = bundle.getInt("picture");
            imageView.setImageResource(picture);
        }
    }
}

ধাপ ৫: দ্বিতীয় লেআউট (res/layout/activity_second.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:layout_height="match_parent"
    tools:context=".SecondActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Second Activity"
        android:layout_marginTop="25sp"
        android:layout_centerHorizontal="true"
        android:textSize="16sp"
        android:textStyle="bold"/>

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>

</RelativeLayout>

ধাপ ৬: মেনিফেস্ট (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=".SecondActivity"></activity>
        <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>

দ্রষ্টব্য

  • এই পদ্ধতিতে শুধুমাত্র রিসোর্স ID (Integer) পাস করা হয়,Bitmap অবজেক্ট নয়। এটি মেমোরি দক্ষ।
  • বাস্তব বাইটম্যাপ পাস করতে হলে Parcelable বা ByteArrayOutputStream ব্যবহার করতে হয়।

ফলাফল

প্রথম স্ক্রিনে বাটনে ক্লিক করলে দ্বিতীয় স্ক্রিনে নির্বাচিত ড্রয়েবল ইমেজ দেখাবে।

অ্যান্ড্রয়েডে এক্টিভিটির মাঝপথে Drawable পাস করা

অ্যান্ড্রয়েডে এক্টিভিটির মাঝপথে Drawable পাস করা

  1. অ্যান্ড্রয়েডে এক্টিভিটির থেকে ফ্র্যাগমেন্টে ভেরিয়েবল পাস করার পদ্ধতি

  2. Android-এ বিভিন্ন অ্যাক্টিভিটির মধ্যে স্যুইচ করার পদ্ধতি

  3. অ্যান্ড্রয়েডে Bitmap কে Drawable-এ রূপান্তর করা

  4. অ্যান্ড্রয়েডে Drawable কে Bitmap-এ রূপান্তর করা