Skip to main content

How to get the selected image path using ImagePicker in Kotlin Android

How to get the selected image path using ImagePicker in Kotlin Android.

Here's a step-by-step tutorial on how to get the selected image path using ImagePicker in Kotlin for Android:

Step 1: Add dependencies

First, you need to add the necessary dependencies in your app's build.gradle file. Open the file and add the following lines inside the dependencies block:

implementation 'com.github.dhaval2404:imagepicker:1.7.2'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.core:core-ktx:1.6.0'

Sync your project to download the dependencies.

Step 2: Request necessary permissions

To access the user's gallery and camera, you need to request the necessary permissions in your AndroidManifest.xml file. Add the following lines inside the manifest tag:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />

Step 3: Create an ImagePicker instance

In your activity or fragment, create an instance of ImagePicker by calling its constructor:

val imagePicker = ImagePicker(this)

Step 4: Set up image selection listener

Set up a listener to handle the image selection event:

imagePicker.setImageListener(object : ImagePicker.ImageListener {
override fun onImageSelected(imageFile: File) {
// Handle the selected image file here
val imagePath = imageFile.absolutePath
// Do something with the image path
}
})

Step 5: Launch image picker

To launch the image picker, call the chooseFromGallery() or takePicture() method on the ImagePicker instance:

imagePicker.chooseFromGallery()

or

imagePicker.takePicture()

Step 6: Handle activity result

In your activity or fragment, override the onActivityResult method to handle the result from the image picker:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
imagePicker.onActivityResult(requestCode, resultCode, data)
}

Step 7: Get the selected image path

Inside the onImageSelected method, you can get the selected image path by calling imageFile.absolutePath. You can then use this path to perform further operations, such as displaying the image or uploading it.

That's it! You've successfully implemented the ImagePicker library in your Kotlin Android app and obtained the selected image path.

Here's a complete example of how the code would look like:

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.github.dhaval2404.imagepicker.ImagePicker
import java.io.File

class MainActivity : AppCompatActivity() {

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

val imagePicker = ImagePicker(this)
imagePicker.setImageListener(object : ImagePicker.ImageListener {
override fun onImageSelected(imageFile: File) {
val imagePath = imageFile.absolutePath
// Do something with the image path
}
})

imagePicker.chooseFromGallery()
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
imagePicker.onActivityResult(requestCode, resultCode, data)
}
}

You can customize the code according to your app's requirements and handle the selected image path as needed.

I hope this tutorial helps you in getting the selected image path using ImagePicker in Kotlin Android!