maayyaannkk/ImagePicker


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

Download


Step 1. Add the JitPack repository to your build file

Add it in your root settings.gradle at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url 'https://jitpack.io' }
		}
	}

Add it in your settings.gradle.kts at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url = uri("https://jitpack.io") }
		}
	}

Add to pom.xml

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

Add it in your build.sbt at the end of resolvers:

 
    resolvers += "jitpack" at "https://jitpack.io"
        
    

Add it in your project.clj at the end of repositories:

 
    :repositories [["jitpack" "https://jitpack.io"]]
        
    

Step 2. Add the dependency

	dependencies {
		implementation 'com.github.maayyaannkk:imagepicker:1.2.5'
	}
	dependencies {
		implementation("com.github.maayyaannkk:imagepicker:1.2.5")
	}
	<dependency>
	    <groupId>com.github.maayyaannkk</groupId>
	    <artifactId>imagepicker</artifactId>
	    <version>1.2.5</version>
	</dependency>

                            
    libraryDependencies += "com.github.maayyaannkk" % "imagepicker" % "1.2.5"
        
        

                            
    :dependencies [[com.github.maayyaannkk/imagepicker "1.2.5"]]
        
        

Readme


ImagePicker Downloads

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

Download Android Arsenal

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

<img src="https://github.com/maayyaannkk/ImagePicker/blob/master/sample.gif" width="300" />

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