Browse Source

增加支持尺寸压缩

guilin 2 years ago
parent
commit
82d32165a4
1 changed files with 34 additions and 2 deletions
  1. 34 2
      app/src/main/java/com/fxy/common/PictureSelectorUpload.java

+ 34 - 2
app/src/main/java/com/fxy/common/PictureSelectorUpload.java

@@ -51,6 +51,9 @@ public class PictureSelectorUpload {
     private RecyclerView mRecyclerView;
     private PopupWindow pop;
 
+    private boolean isCompress = false;
+    private int compressQuality = 100;//默认值
+    private int minimumCompressSize = 100;//最小压缩
     private OSSAsyncTask task;
     private ProgressDialog progressDialog;
     List<String> errorList =  new ArrayList<String> ();;
@@ -105,6 +108,15 @@ public class PictureSelectorUpload {
         resourcePrefix = spCache.getResourcePrefix();
     }
 
+    public void setCompress(Boolean isCompress) {
+        this.isCompress = isCompress;
+    }
+    public void setCompress(Boolean isCompress,int compressQuality,int minimumCompressSize) {
+        this.isCompress = isCompress;
+        this.compressQuality = compressQuality;
+        this.minimumCompressSize = minimumCompressSize;
+    }
+
     public ArrayList getPhotoList(){
         return  adapter.getPhotoList();
     }
@@ -291,13 +303,19 @@ public class PictureSelectorUpload {
                 }else{
                     closeDialog();
                     // 通过接口对象传上传状态
-                    uploadChangeListener.uploadResult(true);
+                    if (uploadChangeListener!=null){
+                        uploadChangeListener.uploadResult(true);
+                    }
+
                 }
             } catch (Exception e) {
                 XLog.e(e.getMessage());
                 e.printStackTrace();
                 // 通过接口对象传上传状态
-                uploadChangeListener.uploadResult(false);
+                if (uploadChangeListener!=null){
+                    uploadChangeListener.uploadResult(false);
+                }
+
             }
         }
     };
@@ -340,6 +358,10 @@ public class PictureSelectorUpload {
 
         LocalMedia localMedia = awaitUploadList.get(num);
         String urlPath =localMedia.getPath();
+        if (isCompress){
+            urlPath = localMedia.getCompressPath();
+        }
+
         if (urlPath.isEmpty()){
             Message msg = new Message();
             msg.obj = "文件路径不存在";
@@ -503,6 +525,9 @@ public class PictureSelectorUpload {
                                 .minSelectNum(1)
                                 .imageSpanCount(4)
                                 .selectionMode(PictureConfig.MULTIPLE)
+                                .compress(isCompress) // 压缩
+                                .cropCompressQuality(compressQuality)// 裁剪压缩质量 默认100
+                                .minimumCompressSize(minimumCompressSize) //最新压缩图片
                                 .forResult(PictureConfig.CHOOSE_REQUEST);
                         break;
                     case R.id.tv_camera:
@@ -512,6 +537,9 @@ public class PictureSelectorUpload {
                                 //只需要拍照
                                 //.selectionMode(PictureConfig.SINGLE)
                                 //.isCamera(true)
+                                .compress(isCompress) // 压缩
+                                .cropCompressQuality(compressQuality)// 裁剪压缩质量 默认100
+                                .minimumCompressSize(minimumCompressSize) //最新压缩图片
                                 .forResult(PictureConfig.CHOOSE_REQUEST);
 
                         break;
@@ -539,6 +567,10 @@ public class PictureSelectorUpload {
                 //只需要拍照
                 //.selectionMode(PictureConfig.SINGLE)
                 //.isCamera(true)
+                //.compressMaxKB()//压缩最大值kb compressGrade()为Luban.CUSTOM_GEAR有效
+                .compress(isCompress) // 压缩
+                .cropCompressQuality(compressQuality)// 裁剪压缩质量 默认100
+                .minimumCompressSize(minimumCompressSize) //最新压缩图片
                 .forResult(PictureConfig.CHOOSE_REQUEST);
     }