Android 拍照、打开相册并裁剪这事来来回回整了好几次,要么SDK版本更新,要么手机适配。索性用了第三方,一劳永逸。
这里主要用了CropView实现裁剪,Compressor实现图片压缩
点击查看大图并缩放懒得弄 下班了 今个周五 明个还加班 可以自己加,可以直接在NormalUtils.intent2ShowPic方法下写 就直接能跳转了
代码下载地址:https://download.csdn.net/download/zhuxu820_/10626125
------------------------------------------------------------
集成方法:
1.集成CropView(https://github.com/freekite/Android-CropView)和Compressor
implementation project(':cropview-lib')
compile 'id.zelory:compressor:2.1.0'
2.ManiFest中声明CropActivity(注意:需要关闭ActionBar,否则报错This Activity already has an action bar supplied by the window decor)
主要方法类介绍:
SingleChooseActivity:单图片选择,适用于头像上传等范围
方法:
继承BaseSingleFuleSubmitActivity
在onCreate中调用CropperManager.getInstance().build(this);
通过PhotoUtils.showPhotoDialog(Activity); 调起选择图片、拍照
复写getPicData(Bitmap bitmap) 方法,在该方法的返回中获得选择的图片
PartChooseActivity:组图片选择,单次选择一张图片,选择后类似朋友圈形式
方法:
继承BaseDoubleFileSubmitActivity
在onCreate中调用CropperManager.getInstance().build(this);
初始化gridview
通过initPicList方法初始化初始数据
通过getAllAddList获得当前grid中所有文件
通过getFileParams获得所有信息
DoublePartChooseActivity:多组图片选择上传,理论上可实现无限组,适用于上传驾驶证、身份证等多组不同信息时
方法:
继承BaseDoublePartFileSubmitActivity
在onCreate中调用CropperManager.getInstance().build(this);
通过initNewOne(Activity activity, int index, int grid_id, ArrayList
通过list_dao.get(0).getAllAddList()获得当前grid中所有文件
通过list_dao.get(0).getFileParams()获得所有信息
其它方法多为自用方法,以及部分冗余废弃方法,可自行删减
------------------------------------------------------------------------------------------------------------------
可以实现单图片选择(适用于上传头像)
多图片(微信朋友圈)
可自由裁剪、可旋转
可单张上传
可删除已上传
多组图片上传