EasyImage是什么?
很多应用程序都可能会使用到上传图片作为用户的头像,那么这个时候就会涉及到图片的选取了,我们最常见的两种方式就是调用摄像头拍照和直接从手机中直接选取。EasyImage可以帮助我们轻松地从相机,画廊或者文件列表中选取照片。
EasyImage的使用
1.库的集成
对于使用Android Studio的同学直接在Grdle中添加依赖:
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.jkwiecien:EasyImage:1.1.3'
}
对于使用Eclipse的同学,可以直接到EasyImage的github主页下载源码。
2.库的使用
从camera获取照片
- EasyImage.openCamera(Activity activity);
- EasyImage.openCamera(Fragment fragment);
从gallery获取照片
- EasyImage.openGallery(Activity activity);
- EasyImage.openGallery(Fragment fragment);
从documents获取照片
- EasyImage.openDocuments(Activity activity);
- EasyImage.openDocuments(Fragment fragment);
让用户选择用哪种方式获取图片(documents or gallery)
- EasyImage.openChooser(Activity activity, String chooserTitle);
- EasyImage.openChooser(Fragment fragment, String chooserTitle);
让用户选择用哪个方式获取图片(camera or gallery)
- EasyImage.openChooser(Activity activity, String chooserTitle, true);
- EasyImage.openChooser(Fragment fragment, String chooserTitle, true);
获取到图片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
EasyImage.handleActivityResult(requestCode, resultCode, data, this, new DefaultCallback() {
@Override
public void onImagePickerError(Exception e, EasyImage.ImageSource source) {
//获取图片错误
}
@Override
public void onImagePicked(File imageFile, EasyImage.ImageSource source) {
//获取图片成功
onPhotoReturned(imageFile);
}
});
}
3.增加一些配置
如果用户需要使用相机照片,然后取消,你可能想从设备中删除这张照片。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
EasyImage.handleActivityResult(requestCode, resultCode, data, this, new DefaultCallback() {
@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);
}
});
}
其他的额外配置
EasyImage.configuration(this)
.setImagesFolderName("My app images") //图像文件夹名称,默认是“EasyImage”
//.saveInAppExternalFilesDir() // 将图片保存在跟内存目录
.saveInRootPicturesDirectory(); // 将图片保存在sdcard的根目录