浅析Android 快速实现图片压缩与上传功能
由于最近项目更新功能比较的忙,也没时间去整理自己的知识点和管理自己的博客.在Android对手机相册中的图片的压缩和上传到服务器上,这样的功能在每个app开发中都会有这样的需求.所以今天就对android端怎么快速实现图片压缩和上传进行简单的分析.
首先需要对图片进行压缩,这方面可以使用第三方的库,我在实际的开发中使用的是compile‘top.zibin:Luban:1.0.9'使用也比较的方便,代码如下:
/**
*
*@parampath代表的是图片的uri路径
*/
privatevoidgetFile(Uripath){
Filefile=newFile(path.getPath());//创建文件
Luban.get(this)
.load(file)//传入要压缩的图片
.putGear(Luban.THIRD_GEAR)//设定压缩档次,默认三挡自己可以选择
.setCompressListener(newOnCompressListener(){//设置回调
@Override
publicvoidonStart(){
//压缩开始前调用,可以在方法内启动loadingUI
}
@Override
publicvoidonSuccess(Filefile){
//压缩成功后调用,返回压缩后的图片文件
zipIcon(file);
}
@Override
publicvoidonError(Throwablee){
}
}).launch();
}
//压缩并上传至服务器
privatevoidzipIcon(Filefile){
RequestBodyrequestBody=RequestBody.create(MediaType.parse("image/*"),file);
MultipartBody.PartformData=MultipartBody.Part.createFormData(Constant.AVATAR,"xxx.png",requestBody);
//上传到服务器
//这样得到formData文件就可以通过上传文件的方式,上传到服务器上了.
}