在Android开发中上传图片(头像)到服务器,要先压缩图片,获取原图的长宽,然后取得压缩比例,compress到指定的质量,输出保存,然后网络上传这张图片就行了。
之前分享了web前端压缩图片的方式:
web前端之HTML5压缩图片compress image with canvas
1,乾言
如果图片太大,上传不仅耗时,而且体验不好。即使加了loading效果,那还是挺耗流量的。so,果断要压缩图片再上传,android客户端,尤其要注意。
2,拿到原图tempPic,开撸
压缩图片并保存到临时目录,如果图片存在上传压缩的图片,没有压缩成功(不存在),就直接上原图吧。
|
|
3,压缩图片,开撸
|
|
4,上传图片,发射
使用okhttp,如果不太熟悉okhttp的话,可以看我的另一博文:
Android网络请求:OkHttp实战
本文上传头像,封装uploadFile方法如下:
|
|
其中的RequestBody大概是这样的:
|
|
5,over,休息
哈哈,简单,如果遇到上传文件的格式限制,和后台协调下。亲测,图片压缩效果明显,不影响清晰度。你也可以自己改质量,宽高,确定压缩后的图片,网络框架嘛,很多,看个人习惯咯。
|
|