Image Picker and compression

Additional

Language
Java
Version
1.2.5 (Sep 7, 2023)
Created
Apr 13, 2018
Updated
Sep 7, 2023
Owner
Mayank Nagwanshi (maayyaannkk)
Contributor
Mayank Nagwanshi (maayyaannkk)
1
Activity
Badge
Generate
Download
Source code

Advertisement

ImagePicker

Android library to choose image from gallery or camera with option to compress result image.

Download

Add this to your project's build.gradle

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

And add this to your module's build.gradle

dependencies {
 implementation 'com.github.maayyaannkk:ImagePicker:x.y.z'
}

change x.y.z to version in

Usage

For full example, please refer to app module

No need to request for write external storage permission, library will do that.

Crop with 1:1 aspect ratio

Start image picker activity

The simplest way to start is setup options and start the activity. Set the FLAG_CROP to crop resulting image in 1:1 aspect ratio

Intent intent = new Intent(this, ImageSelectActivity.class);
intent.putExtra(ImageSelectActivity.FLAG_COMPRESS, false);//default is true
intent.putExtra(ImageSelectActivity.FLAG_CAMERA, true);//default is true
intent.putExtra(ImageSelectActivity.FLAG_GALLERY, true);//default is true
intent.putExtra(ImageSelectActivity.FLAG_CROP, isCrop);//default is false
startActivityForResult(intent, 1213);

Receive result

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1213 && resultCode == Activity.RESULT_OK) {
            String filePath = data.getStringExtra(ImageSelectActivity.RESULT_FILE_PATH);
            Bitmap selectedImage = BitmapFactory.decodeFile(filePath);
            imageView.setImageBitmap(selectedImage);
        }
    }

Corner cases

throws IllegalStateException if:
-chooseFromCamera and chooseFromGallery both are false