Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Kotlin का उपयोग करके एंड्रॉइड पर गैलरी से इमेज कैसे चुनें?

परिचय

यह उदाहरण दर्शाता है कि एंड्रॉइड में इंटेंट का उपयोग करके गैलरी से इमेज कैसे चुनें और उसे ImageView में प्रदर्शित करें।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फ़ाइल में कोड जोड़ें

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:scaleType="centerCrop"
        android:contentDescription="चुनी गई इमेज" />

    <Button
        android:id="@+id/buttonLoadPicture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="16dp"
        android:text="इमेज चुनें" />

</LinearLayout>

चरण 3: MainActivity.kt में कोड जोड़ें

import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.activity.result.contract.ActivityResultContracts
import androidx.activity.result.registerForActivityResult

class MainActivity : AppCompatActivity() {
    private lateinit var imageView: ImageView
    private lateinit var button: Button
    private var imageUri: Uri? = null

    // मॉडर्न Activity Result API (API 30+ के लिए अनुशंसित)
    private val pickImageLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        if (result.resultCode == Activity.RESULT_OK) {
            val data = result.data
            imageUri = data?.data
            imageUri?.let { imageView.setImageURI(it) }
        }
    }

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

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

        button.setOnClickListener {
            val galleryIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
            pickImageLauncher.launch(galleryIntent)
        }
    }

    // लीगेसी सपोर्ट के लिए (पुराने API के लिए)
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // नए API के साथ आमतौर पर आवश्यक नहीं
    }
}

चरण 4: AndroidManifest.xml में अनुमति जोड़ें

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

    <!-- Android 10 (API 29) और नीचे के लिए -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <!-- Android 11 (API 30)+ के लिए -->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />

    <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"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

महत्वपूर्ण नोट्स

  • मॉडर्न API: `registerForActivityResult` का उपयोग करें (Activity 1.2.0+) - यह `startActivityForResult` से बेहतर है
  • स्टोरेज अनुमतियाँ: Android 10+ पर स्कोप्ड स्टोरेज के कारण `READ_EXTERNAL_STORAGE` की आवश्यकता नहीं हो सकती
  • कंटेंट प्रोवाइडर: `MediaStore.Images.Media.EXTERNAL_CONTENT_URI` आंतरिक स्टोरेज के बजाय बाहरी स्टोरेज के लिए बेहतर है
  • रनटाइम अनुमतियाँ: Android 6.0+ पर खतरनाक अनुमतियों के लिए रनटाइम अनुमति अनुरोध लागू करें

ऐप चलाएं

ऐप चलाएं, "इमेज चुनें" दबाएं, गैलरी से इमेज चुनें और देखें कि यह ImageView में प्रदर्शित होती है।

  1. Android में गैलरी से इमेज कैसे चुनें? Android में गैलरी से इमेज कैसे चुनें?

    यह उदाहरण दर्शाता है कि Android ऐप में गैलरी से इमेज चुनकर ImageView में कैसे दिखाया जाए startActivityForResult का उपयोग करके। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml - ImageView और बटन: <?xml version=1.0 encoding=utf-8?&g

  1. Android में कोड का उपयोग करके ImageView का मार्जिन कैसे सेट करें Android में कोड का उपयोग करके ImageView का मार्जिन कैसे सेट करें

    परिचयरनटाइम पर व्यू के मार्जिन को बदलने के लिए, उसके `LayoutParams` को प्राप्त करें, मार्जिन सेट करें, और फिर `setLayoutParams()` कॉल करें।कार्यान्वयनचरण 1: लेआउट (activity_main.xml)<ImageView android:id=@+id/imageView android:layout_width=wrap_content android:layout_height=wrap_content android:b

  1. Android में ImageView की इमेज को कोण से कैसे घुमाएं? Android में ImageView की इमेज को कोण से कैसे घुमाएं?

    Android में ImageView रोटेशन यह उदाहरण दर्शाता है कि setRotation() विधि का उपयोग करके ImageView में प्रदर्शित इमेज को किसी भी कोण पर कैसे घुमाया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में ImageView और Button जोड़ें (activity_main.xml) <?xml ver