EasyImage allow you to eaisly take picture from gallery or camera without creating lots of boilerplate.
#How to use it? ##Essentials
####Taking straight to camera
EasyImage.openCamera(Activity activity);
EasyImage.openCamera(Fragment fragment);
####Taking straight to gallery
EasyImage.openGalleryPicker(Activity activity);
EasyImage.openGalleryPicker(Fragment fragment);
####Displaying system picker
EasyImage.openChooser(Activity activity, String chooserTitle);
EasyImage.openChooser(Fragment fragment, String chooserTitle);
####Getting the photo file
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
EasyImage.handleActivityResult(requestCode, resultCode, data, this, new EasyImage.Callbacks() {
@Override
public void onImagePickerError(Exception e, EasyImage.ImageSource source) {
//Some error handling
}
@Override
public void onImagePicked(File imageFile, EasyImage.ImageSource source) {
//Handle the image
onPhotoReturned(imageFile);
}
});
}
##Additional features ####Removing canceled but captured photo If the user takes photo using camera, but then cancels, you might wanna remove that photo from the device. Sample app present's the usage:
@Override
public void onCanceled(EasyImage.ImageSource source) {
//Cancel handling, you might wanna remove taken photo if it was canceled
if (source == EasyImage.ImageSource.CAMERA) {
File photoFile = EasyImage.lastlyTakenButCanceledPhoto(MainActivity.this);
if (photoFile != null) photoFile.delete();
}
}
####Changing name of the captured images folder All captured with camera images are stored under folder named "EasyImage". If you wish to change it just do the following:
EasyImage.configuration(this)
.setImagesFolderName("My app images");
#Setup
##Runtime permissions
Library requires permission from your app. Declare it in your AndroidMnifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Please note that for devices running API 23 (marshmallow) you have to request this permission in the runtime, beofre calling EasyImage.openCamera()
. It's demonstrated in the sample app.
There is also one issue about runtime permissions. According to the docs:
if you app targets M and above and declares as using the CAMERA permission which is not granted, then atempting to use this action will result in a SecurityException.
For this reason, if your app uses CAMERA
permission, you should check it aswell as WRITE_EXTERNAL_STORAGE
before calling EasyImage.openCamera()
This library will help you manage runtime permissions.
##Gradle dependency
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.jkwiecien:EasyImage:1.0.9'
}
Copyright 2015 Jacek Kwiecień.
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.