欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

浅析Android 快速实现图片压缩与上传功能

程序员文章站 2023-11-27 17:00:28
由于最近项目更新功能比较的忙,也没时间去整理自己的知识点和管理自己的博客.在android对手机相册中的图片的压缩和上传到服务器上,这样的功能在每个app开发中都会有这样的...

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

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

/**
   * 
   * @param path 代表的是图片的uri路径
   */
private void getfile(uri path) {
   file file = new file(path.getpath());//创建文件
    luban.get(this)
        .load(file)           // 传入要压缩的图片
        .putgear(luban.third_gear)   // 设定压缩档次,默认三挡自己可以选择
        .setcompresslistener(new oncompresslistener() { // 设置回调
          @override
          public void onstart() {
            // 压缩开始前调用,可以在方法内启动 loading ui
          }
          @override
          public void onsuccess(file file) {
            // 压缩成功后调用,返回压缩后的图片文件
            zipicon(file);
          }
          @override
          public void onerror(throwable e) {
          }
        }).launch();
  }
 // 压缩并上传至服务器
  private void zipicon(file file) {
    requestbody requestbody = requestbody.create(mediatype.parse("image/*"), file);
    multipartbody.part formdata = multipartbody.part.createformdata(constant.avatar, "xxx.png", requestbody); 
    //上传到服务器 
    // 这样得到formdata文件 就可以通过上传文件的方式,上传到服务器上了.  
  }