https://github.com/akshay2211/PixImagePicker
Pix is a Whatsapp image picker replica. with this, you can integrate an image picker just like WhatsApp.
https://github.com/akshay2211/PixImagePicker
android android-library hacktoberfest hacktoberfest2021 imagepicker kotlin photo-gallery picker whatsapp
Last synced: 5 months ago
JSON representation
Pix is a Whatsapp image picker replica. with this, you can integrate an image picker just like WhatsApp.
- Host: GitHub
- URL: https://github.com/akshay2211/PixImagePicker
- Owner: akshay2211
- License: apache-2.0
- Created: 2018-05-07T02:56:26.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-04T17:09:22.000Z (9 months ago)
- Last Synced: 2024-10-29T17:29:28.951Z (6 months ago)
- Topics: android, android-library, hacktoberfest, hacktoberfest2021, imagepicker, kotlin, photo-gallery, picker, whatsapp
- Language: Kotlin
- Homepage:
- Size: 16.1 MB
- Stars: 864
- Watchers: 22
- Forks: 218
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README

# Pix (WhatsApp Style Image and Video Picker)
Pix is a WhatsApp image picker replica. with this you can integrate a image picker just like WhatsApp.
[](https://androidweekly.net/issues/issue-476)
[](https://devlibrary.withgoogle.com/products/android/repos/akshay2211-PixImagePicker)
[](https://app.codacy.com/app/akshay2211/PixImagePicker?utm_source=github.com&utm_medium=referral&utm_content=akshay2211/PixImagePicker&utm_campaign=Badge_Grade_Dashboard)
[](https://android-arsenal.com/details/1/6935)
[](https://medium.com/@fxn769/pix-media-picker-android-library-1ec3c5e5f91a)
[](https://android-arsenal.com/api?level=16)
[](https://android.libhunt.com/piximagepicker-alternatives)
[](https://www.appbrain.com/stats/libraries/details/pix-image-picker/pix-image-picker)![]()
[](https://xscode.com/akshay2211/piximagepicker)
## Demo
## Usage
set configuration as
```kotlin
val options = Options().apply{
ratio = Ratio.RATIO_AUTO //Image/video capture ratio
count = 1 //Number of images to restrict selection count
spanCount = 4 //Number for columns in grid
path = "Pix/Camera" //Custom Path For media Storage
isFrontFacing = false //Front Facing camera on start
videoDurationLimitInSeconds = 10 //Duration for video recording
mode = Mode.All //Option to select only pictures or videos or both
flash = Flash.Auto //Option to select flash type
preSelectedUrls = ArrayList() //Pre selected Image Urls
videoOptions : VideoOptions //Video configurations
}```
Ratio can be
```kotlin
RATIO_4_3, RATIO_16_9, RATIO_AUTO
```
Mode to to select the media type can be as
```kotlin
All, Picture, Video
```
Then pass this config to the pix fragment either via
```kotlin
addPixToActivity(R.id.container, options) {
when (it.status) {
PixEventCallback.Status.SUCCESS -> //use results as it.data
PixEventCallback.Status.BACK_PRESSED -> // back pressed called
}
}
```
or plain fragment can be retrieved via
```kotlin
private val pixFragment = pixFragment(options)
```
The results can be retrieved via the constructor callback from the fragment
```kotlin
pixFragment(options){
when (it.status) {
PixEventCallback.Status.SUCCESS -> //use results as it.data
PixEventCallback.Status.BACK_PRESSED -> // back pressed called
}
}
```
Or can be retrieved by anywhere in the Application from the state flow eventbus
```kotlin
PixBus.results {
when (it.status) {
PixEventCallback.Status.SUCCESS -> //use results as it.data
PixEventCallback.Status.BACK_PRESSED -> // back pressed called
}
}
```
For detailed usage kindly refer to the below samples
- [FragmentSample](app/src/main/java/io/ak1/pixsample/samples/FragmentSample.kt) for Plain Fragment implementation
- [NavControllerSample](app/src/main/java/io/ak1/pixsample/samples/NavControllerSample.kt) for Fragments with NavController implementation
- [ViewPager2Sample](app/src/main/java/io/ak1/pixsample/samples/ViewPager2Sample.kt) for Fragments with ViewPager2 implementation## Customise
### Theme
include these items in colors.xml with custom color codes
```xml#E53935
#075e54
#80075e54
#ffffff
#807f7f```
## Thanks to
- [Glide]
- [FastScroll]
- [Header-decor]
- [CameraX]
- [Coroutines]## Backers
Become a backer and help us sustain our activities! 🙏🙏## Download
[Download](https://search.maven.org/artifact/io.ak1.pix/piximagepicker) or grab via Gradle:
include in app level build.gradle
```groovy
repositories {
mavenCentral()
}
```
```groovy
implementation 'io.ak1.pix:piximagepicker:1.6.5'
```
or Maven:
```xmlio.ak1.pix
piximagepicker
1.6.5
pom```
or ivy:
```xml
```
#### Find docs for old versions in [wiki](https://github.com/akshay2211/PixImagePicker/wiki) for 1.5.6 and 1.2.5
#### Also you can find the source for version 1.5.6 [here](https://github.com/akshay2211/PixImagePicker/tree/activity_branch).## WIP for KMP migration.
## License
Licensed under the Apache License, Version 2.0, [click here for the full license](/LICENSE).## Author & support
This project was created by [Akshay Sharma](https://akshay2211.github.io/).> If you appreciate my work, consider buying me a cup of :coffee: to keep me recharged :metal: by [PayPal](https://www.paypal.me/akshay2211)
> I love using my work and I'm available for contract work. Freelancing helps to maintain and keep [my open source projects](https://github.com/akshay2211/) up to date!
[Glide]:
[FastScroll]:
[Header-decor]:
[CameraX]:
[Coroutines]: