ImagePicker
ImagePicker copied to clipboard
Android library to easily pick an image from gallery or camera app. The users can select their prefered gallery/camera app on a unique Intent. Initial gist:
ImagePicker [Deprecated] (Use Google API CameraX)
ImagePicker is an Android library to easily pick an image from gallery or camera app. The users can select their prefered gallery/camera app on a unique Intent. Download the APK sample on Google Play:
Screenshots

Usage
Add the following code to your Activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// width and height will be at least 600px long (optional).
ImagePicker.setMinQuality(600, 600);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bitmap = ImagePicker.getImageFromResult(this, requestCode, resultCode, data);
// TODO do something with the bitmap
}
public void onPickImage(View view) {
// Click on image button
ImagePicker.pickImage(this, "Select your image:");
}
Add it to your project
Add this permission to your AndroidManifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
// Add this line
maven { url "https://jitpack.io" }
}
}
Add ImagePicker dependency to your app build.gradle file:
dependencies{
compile 'com.github.Mariovc:ImagePicker:x.x.x'
}
where x.x.x corresponds to latest release version published in
In order to display the ImagePicker and to make works correcly both gallery and camera you have add this provider section inside the AndroidManifest.xml file:
<application>
<provider
android:name="android.support.v4.content.FileProvider"
<!-- or android:name="androidx.core.content.FileProvider" if using androidx -->
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
...
</application>
As you can see from the android:resource="@xml/provider_paths" line you also have to provide the provider_paths.xml file, that will contains these lines of code:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="." />
</paths>
Contributing
Feel free to fork and make a pull request with your improvements.
Developed By
- Mario Velasco Casquero - [email protected]
License
Copyright 2016 Mario Velasco Casquero
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.