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

Android অ্যাপে URL থেকে Bitmap লোড করার পদ্ধতি


URL থেকে ছবি ডাউনলোড করে Bitmap হিসেবে দেখানোর উদাহরণ

এই উদাহরণটি দেখায় কিভাবে `AsyncTask` ব্যবহার করে ব্যাকগ্রাউন্ডে URL থেকে ছবি ডাউনলোড করে ImageView-এ দেখানো যায়।

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

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML-এ কোড যোগ করুন

res/layout/activity_main.xml ফাইলে নিচের কোডটি যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:padding="8dp"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical">

        <ImageView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_gravity="center"
            android:layout_margin="15dp"
            android:src="@drawable/image"/>

    </LinearLayout>

    <ImageView
        android:id="@+id/iMageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="20sp"/>

</LinearLayout>

ধাপ ৩: ড্রয়েবল ফোল্ডারে ছবি রাখুন

res/drawable ফোল্ডারে একটি ছবি (.png/.jpg/.jpeg) কপি-পেস্ট করুন।

ধাপ ৪: MainActivity.java-এ AsyncTask লজিক লিখুন

src/MainActivity.java ফাইলে নিচের কোডটি যোগ করুন:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import java.io.IOException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {

    Bitmap bitmap;
    ImageView image;
    String urlImage = "https://thumbs.dreamstime.com/z/hands-holding-blue-earth-cloud-sky" +
            "-elements-imag-background-image-furnished-nasa-61052787.jpg";

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

        image = findViewById(R.id.iMageView);
        new GetImageFromUrl(image).execute(urlImage);
    }

    public class GetImageFromUrl extends AsyncTask<String, Void, Bitmap> {

        ImageView imageView;

        public GetImageFromUrl(ImageView img) {
            this.imageView = img;
        }

        @Override
        protected Bitmap doInBackground(String... url) {
            String stringUrl = url[0];
            bitmap = null;
            InputStream inputStream;
            try {
                inputStream = new java.net.URL(stringUrl).openStream();
                bitmap = BitmapFactory.decodeStream(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return bitmap;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            if (bitmap != null) {
                imageView.setImageBitmap(bitmap);
            }
        }
    }
}

ধাপ ৫: AndroidManifest.xml-এ ইন্টারনেট পারমিশন যোগ করুন

androidManifest.xml ফাইলে নিচের পারমিশন যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <uses-permission android:name="android.permission.INTERNET"/>

    <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>

অ্যাপ্লিকেশন চালানোর পদ্ধতি

আপনার Android ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের activity ফাইল খুলে টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং আউটপুট পরীক্ষা করুন।

Android অ্যাপে URL থেকে Bitmap লোড করার পদ্ধতি

  1. অ্যান্ড্রয়েডে URL থেকে ইমেজ ডাউনলোড করার পদ্ধতি

  2. অ্যান্ড্রয়েড অ্যাপে স্ক্রিন ডাইমেনশন পিক্সেলে পাওয়ার পদ্ধতি

  3. অ্যান্ড্রয়েডে Bitmap-এ থেকে ফ্রি-হ্যান্ড গোলাকার এলাকা কাটা (Crop)

  4. পিসি থেকে অ্যান্ড্রয়েড অ্যাপ ইনস্টল করার পদ্ধতি