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

অ্যান্ড্রয়েডে ক্যামেরা ব্যবহার করে ছবি তোলার পদ্ধতি

ক্যামেরা ইন্টেন্ট ব্যবহার করে ছবি তোলা এবং প্রদর্শন

এই উদাহরণে দেখানো হয়েছে কীভাবে ডিভাইসের ক্যামেরা অ্যাপ চালু করে ছবি তোলা যায় এবং সেই ছবিটি অ্যাপে দেখানো যায়।

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

Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।

দ্বিতীয় ধাপ: লেআউট ফাইল

res/layout/activity_main.xml - একটি বাটন এবং ইমেজভিউ:

<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"
    android:gravity="center"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="24sp"
        android:text="Click here to take picture"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="25sp"/>
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:layout_below="@id/button" />
</RelativeLayout>

তৃতীয় ধাপ: মেইন এক্টিভিটিতে ক্যামেরা লজিক

src/MainActivity.java - রানটাইম পারমিশন হ্যান্ডলিংসহ:

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button btnTakePhoto;
    ImageView imageView;
    public static final int RequestPermissionCode = 1;
    private static final int CAMERA_REQUEST_CODE = 7;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btnTakePhoto = findViewById(R.id.button);
        imageView = findViewById(R.id.imageView);
        
        EnableRuntimePermission();
        
        btnTakePhoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, CAMERA_REQUEST_CODE);
            }
        });
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {
            // থাম্বনেইল ইমেজ বের করা (data.getExtras().get("data"))
            Bitmap bitmap = (Bitmap) data.getExtras().get("data");
            imageView.setImageBitmap(bitmap);
        }
    }
    
    // রানটাইম পারমিশন চেক এবং রিকোয়েস্ট
    public void EnableRuntimePermission() {
        if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.CAMERA)) {
            Toast.makeText(MainActivity.this, "CAMERA permission allows us to Access CAMERA app", Toast.LENGTH_LONG).show();
        } else {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, RequestPermissionCode);
        }
    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case RequestPermissionCode:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(MainActivity.this, "Permission Granted, Now your application can access CAMERA.", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(MainActivity.this, "Permission Canceled, Now your application cannot access CAMERA.", Toast.LENGTH_LONG).show();
                }
                break;
        }
    }
}

চতুর্থ ধাপ: ম্যানিফেস্টে পারমিশন

<?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.CAMERA"/>
    <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>

গুরুত্বপূর্ণ সীমাবদ্ধতা এবং উন্নতি

  • data.getExtras().get("data") শুধু **থাম্বনেইল** (ছোট সাইজ) রিটার্ন করে
  • ফুল রেজোলিউশন ইমেজের জন্য FileProvider ব্যবহার করে একটি ফাইল URI পাস করুন ইন্টেন্টে:
    intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
  • Android 10+ (API 29+) এ ক্যামেরা ইন্টেন্ট বেক্টার আচরণ 보일 수 있습니다
  • আধুনিক ডেভেলপমেন্টে CameraX লাইব্রেরি ব্যবহার করুন

অ্যাপ্লিকেশন চালান

বাটনে ক্লিক করলে ক্যামেরা খুলবে, ছবি তোলার পর অ্যাপে ফিরে থাম্বনেইল দেখাবে।

অ্যান্ড্রয়েডে ক্যামেরা ব্যবহার করে ছবি তোলার পদ্ধতি অ্যান্ড্রয়েডে ক্যামেরা ব্যবহার করে ছবি তোলার পদ্ধতি অ্যান্ড্রয়েডে ক্যামেরা ব্যবহার করে ছবি তোলার পদ্ধতি অ্যান্ড্রয়েডে ক্যামেরা ব্যবহার করে ছবি তোলার পদ্ধতি

  1. অ্যান্ড্রয়েড অ্যাপে ক্যামেরা ব্যবহার করার পদ্ধতি

  2. Android-এ প্রোগ্রামেটিক্যালি অ্যাপ্লিকেশন বন্ধ করা

  3. অ্যান্ড্রয়েডে রিয়ার ক্যামেরা দিয়ে সেলফি তুলে নেওয়ার পদ্ধতি

  4. আইফোন ফটোগ্রাফি মাস্টার করুন: চমৎকার ছবির জন্য প্রো টিপস