esafirm / android-image-picker

Image Picker for Android 🤖
MIT License
1.11k stars 328 forks source link
android camera gallery hacktoberfest image-picker picker-library

Android Image Picker

No config yet highly configurable image picker for Android

Android Arsenal - ImagePicker jitpack - android image picker

# Screenshot
Click to see how image picker looks…
## Download Add this to your project's `build.gradle` ```groovy allprojects { repositories { maven { url "https://jitpack.io" } } } ``` And add this to your module's `build.gradle` ```groovy dependencies { implementation 'com.github.esafirm:android-image-picker:x.y.z' } ``` change `x.y.z` to version in the [release page](https://github.com/esafirm/android-image-picker/releases) # Usage For full example, please refer to the `sample` app. Also you can browse the issue labeled as question [here](https://github.com/esafirm/android-image-picker/issues?utf8=%E2%9C%93&q=label%3Aquestion+) ## Start image picker activity The simplest way to start ```kotlin val launcher = registerImagePicker { // handle result here } launcher.launch() ``` Complete features of what you can do with ImagePicker ```kotlin val config = ImagePickerConfig { mode = ImagePickerMode.SINGLE // default is multi image mode language = "in" // Set image picker language theme = R.style.ImagePickerTheme // set whether pick action or camera action should return immediate result or not. Only works in single mode for image picker returnMode = if (returnAfterCapture) ReturnMode.ALL else ReturnMode.NONE isFolderMode = folderMode // set folder mode (false by default) isIncludeVideo = includeVideo // include video (false by default) isOnlyVideo = onlyVideo // include video (false by default) arrowColor = Color.RED // set toolbar arrow up color folderTitle = "Folder" // folder selection title imageTitle = "Tap to select" // image selection title doneButtonText = "DONE" // done button text limit = 10 // max images can be selected (99 by default) isShowCamera = true // show camera or not (true by default) savePath = ImagePickerSavePath("Camera") // captured image directory name ("Camera" folder by default) savePath = ImagePickerSavePath(Environment.getExternalStorageDirectory().path, isRelative = false) // can be a full path excludedImages = images.toFiles() // don't show anything on this selected images selectedImages = images // original selected images, used in multi mode } ``` If you want to call it outside `Activity` or `Fragment`, you can get the `Intent` with `createImagePickerIntent` > Please note: handling in `onActivityResult` is not recommended since it's already deprecated in favor of the new > result API ```kotlin val intent = createImagePickerIntent(context, ImagePickerConfig()) startActivityForResult(intent, RC_IMAGE_PICKER) ``` ## Receive result when you're done picking images, result will be returned on launcher callback with type `List`. This list cannot be null but can be empty ```kotlin val launcher = registerImagePicker { result: List -> result.forEach { image -> println(image) } } ``` ## Camera Only Use `CameraOnlyConfig` instead of `ImagePickerConfig` ```kotlin val launcher = registerImagePicker { } launcher.launch(CameraOnlyConfig()) ``` You also still can use the `DefaultCameraModule` but discouraged to do it. # Wiki - [Custom components](https://github.com/esafirm/android-image-picker/blob/main/docs/custom_components.md) - [Using another image library](https://github.com/esafirm/android-image-picker/blob/main/docs/another_image_library.md) - [Return mode](https://github.com/esafirm/android-image-picker/blob/main/docs/return_mode.md) - [Save location](https://github.com/esafirm/android-image-picker/blob/main/docs/save_location.md) # Version 2.x.x If you still use the previous version, you can check `2.x` branch in [here](https://github.com/esafirm/android-image-picker/tree/2.x) # Support Me! I would make myself more commited to this repo and OSS works in general. Would you help me achieving this goals? Buy Me a Coffee at ko-fi.com # Credits - AIP Logo by [anaufalm](https://github.com/anaufalm) # License MIT @ Esa Firman