一个强大图片的选择、裁剪工具—看这一个就够用了
一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库
codeGoogler博客地址:
http://www.jianshu.com/p/c83f06651d12
效果展示:
图片拍照
图片裁剪
TakePhoto 包括以下功能:
支持通过相机拍照获取图片
支持从相册选择图片
支持从文件选择图片
支持批量图片选取
支持图片压缩以及批量图片压缩
支持图片裁切以及批量图片裁切
支持照片旋转角度自动纠正
支持自动权限管理(无需关心SD卡及摄像头权限等问题)
支持对裁剪及压缩参数个性化配置
提供自带裁剪工具(可选)
支持智能选取及裁剪异常处理
支持因拍照Activity被回收后的自动恢复
支持Android7.0
+支持多种压缩工具
图库功能
图片选自
打开方式
使用TakePhoto有以下两种方式:
方式一:通过继承的方式三者之一。
继承TakePhotoActivity
TakePhotoFragmentActivity
TakePhotoFragment
通过getTakePhoto() 获取TakePhoto 实例进行相关操作。 重写以下方法获取结果
void takeSuccess(TResult result);
void takeFail(TResult result,String msg);
void takeCancel();
方式二:通过组装的方式 在相对应的类中进行添加代码
1.实现TakePhoto.TakeResultListener,InvokeListener 接口。
2.在 onCreate,onActivityResult,onSaveInstanceState 方法中调用TakePhoto对用的方法。
3.重写onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
压缩图片
你可以选择是否对图片进行压缩处理,你只需要告诉它你是否要启用压缩功能以及CompressConfig即可
多选图片
API
/**
* 启用图片压缩
* @param config 压缩图片配置
* @param showCompressDialog 压缩时是否显示进度对话框
* @return
*/
void onEnableCompress(CompressConfig config,boolean showCompressDialog);
Usage:
TakePhoto takePhoto=getTakePhoto();
takePhoto.onEnableCompress(compressConfig,true);
takePhoto.onPickFromGallery();
兼容性
Android6.0
由于Android6.0新增了"运行时权限控制(Runtime Permissions)",为了应对这一改变,TakePhoto加入和自动权限管理,当TakePhoto检测到需要权限时,TakePhoto会自动申请权限,所以小伙伴们不用担心权限的使用问题。
Android7.0
在Android N中,Android 框架执行了 StrictMode,应用间共享文件和以前也有所区别。为了适配Android7.0的改变,同时也为了方便大家使用TakePhoto,TakePhoto会自动根据手机的Android版本自行适配,小伙伴们依旧可以向TakePhoto传递Uri imageUri = Uri.fromFile(file); 类型的Uri而不用担心兼容性问题。
TakePhoto在深度兼容性方面的测试
博客地址:
http://www.jianshu.com/p/c83f06651d12
项目地址:
https://github.com/crazycodeboy/TakePhoto
终端研发部提倡: 没有做不到的,只有想不到的。
在这里获得的不仅仅是技术!
让心,在阳光下学会舞蹈
让灵魂,在痛苦中学会微笑
—终端研发部—
如果你觉得此文对您有所帮助,欢迎入群 QQ交流群 :232203809
微信公众号:终端研发部
这里学到的不仅仅技术