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

অ্যান্ড্রয়েডে ক্যামেরা প্রোগ্রামেটিক্যালি কীভাবে ক্লিক করবেন?

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

পদক্ষেপ ১: নতুন প্রজেক্ট তৈরি করুন

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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="4dp"> 
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_above="@id/imageView" 
        android:layout_centerInParent="true" 
        android:layout_marginBottom="10dp" 
        android:text="Click the below button to take photo from camera" 
        android:textAlignment="center" 
        android:textColor="@android:color/holo_purple" 
        android:textSize="16sp" 
        android:textStyle="bold" /> 
    <ImageView 
        android:id="@+id/imageView" 
        android:layout_width="match_parent" 
        android:layout_height="630dp" 
        android:layout_above="@id/btnCaptureImage" 
        android:layout_marginTop="16dp" 
        android:scaleType="centerCrop" 
        android:src="@drawable/ic_baseline_image_24" /> 
    <Button 
        android:id="@+id/btnCaptureImage" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:text="Capture Image" /> 
</RelativeLayout>

পদক্ষেপ ৩: src/MainActivity.kt-এ কোড যোগ করুন

import android.Manifest
import android.content.ContentValues
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
    private lateinit var button: Button
    private lateinit var imageView: ImageView
    private lateinit var imageUri: Uri
    private val permissionCode = 1000
    private val imageCaptureCode = 1001

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        imageView = findViewById(R.id.imageView)
        button = findViewById(R.id.btnCaptureImage)

        button.setOnClickListener {
            requestCameraPermission()
        }
    }

    private fun requestCameraPermission() {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) 
            != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(
                this, 
                arrayOf(Manifest.permission.CAMERA), 
                permissionCode
            )
        } else {
            openCamera()
        }
    }

    private fun openCamera() {
        val values = ContentValues().apply {
            put(MediaStore.Images.Media.TITLE, "New Picture")
            put(MediaStore.Images.Media.DESCRIPTION, "From the Camera")
        }
        
        imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)!!
        
        val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
        startActivityForResult(cameraIntent, imageCaptureCode)
    }

    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == permissionCode) {
            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                openCamera()
            } else {
                Toast.makeText(this, "Permission denied...", Toast.LENGTH_SHORT).show()
            }
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == imageCaptureCode && resultCode == RESULT_OK) {
            imageView.setImageURI(imageUri)
        }
    }
}

পদক্ষেপ ৪: androidManifest.xml-এ কোড যোগ করুন

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" 
    package="com.example.q11"> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
        android:maxSdkVersion="28" /> 
    <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 10+): MediaStore ব্যবহার করুন, WRITE_EXTERNAL_STORAGE পারমিশন ছাড়া। CameraX লাইব্রেরি ব্যবহার করা সেরা অনুশীলন।

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

দ্রষ্টব্য: বাস্তব ডিভাইসে টেস্ট করুন ভালো ফলাফলের জন্য

আপনার আসল অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত আছে বলে ধরে। Android Studio-তে আপনার প্রজেক্টের এক্টিভিটি ফাইল খুলুন এবং টুলবারের রান আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ডিভাইসে ডিফল্ট স্ক্রিন দেখুন।

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

  2. অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি ফোন নম্বর পাওয়ার পদ্ধতি

  3. অ্যান্ড্রয়েডে ইনকামিং কল প্রোগ্রামেটিক্যালি রিসিভ করবেন কীভাবে?

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