查看: 2519|回复: 0

[手机开发] 浅析Android 快速实现图片压缩与上传功能

发表于 2018-1-6 09:58:57

由于最近项目更新功能比较的忙,也没时间去整理自己的知识点和管理自己的博客.在Android对手机相册中的图片的压缩和上传到服务器上,这样的功能在每个app开发中都会有这样的需求.所以今天就对android端怎么快速实现图片压缩和上传进行简单的分析.

首先需要对图片进行压缩,这方面可以使用第三方的库,我在实际的开发中使用的是 compile ‘top.zibinuban:1.0.9'使用也比较的方便,代码如下:

  1. /**
  2. *
  3. * @param path 代表的是图片的uri路径
  4. */
  5. private void getFile(Uri path) {
  6. File file = new File(path.getPath());//创建文件
  7. Luban.get(this)
  8. .load(file) // 传入要压缩的图片
  9. .putGear(Luban.THIRD_GEAR) // 设定压缩档次,默认三挡自己可以选择
  10. .setCompressListener(new OnCompressListener() { // 设置回调
  11. @Override
  12. public void onStart() {
  13. // 压缩开始前调用,可以在方法内启动 loading UI
  14. }
  15. @Override
  16. public void onSuccess(File file) {
  17. // 压缩成功后调用,返回压缩后的图片文件
  18. zipIcon(file);
  19. }
  20. @Override
  21. public void onError(Throwable e) {
  22. }
  23. }).launch();
  24. }
  25. // 压缩并上传至服务器
  26. private void zipIcon(File file) {
  27. RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
  28. MultipartBody.Part formData = MultipartBody.Part.createFormData(Constant.AVATAR, "xxx.png", requestBody);
  29. //上传到服务器
  30. // 这样得到formData文件 就可以通过上传文件的方式,上传到服务器上了.
  31. }
复制代码



回复

使用道具 举报