first
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package com.ckkj.water.utils;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import top.zibin.luban.CompressionPredicate;
|
||||
import top.zibin.luban.Luban;
|
||||
import top.zibin.luban.OnCompressListener;
|
||||
|
||||
/**
|
||||
* 鲁班压缩文件
|
||||
*/
|
||||
public class LubanCompressUtil {
|
||||
|
||||
private static LubanCompressUtil mInstance;
|
||||
private Context mContext;
|
||||
|
||||
public static LubanCompressUtil getInstance() {
|
||||
if (mInstance == null) {
|
||||
if (mInstance == null) {
|
||||
mInstance = new LubanCompressUtil();
|
||||
}
|
||||
}
|
||||
return mInstance;
|
||||
}
|
||||
|
||||
public interface CompressCallback{
|
||||
void success(File file);
|
||||
void fail(String failMsg);
|
||||
}
|
||||
|
||||
public void getCompressFile(Context context,File oldFile,CompressCallback callback){
|
||||
File compressFile = null;
|
||||
Luban.with(context)
|
||||
.load(oldFile) // 原始图片文件
|
||||
.ignoreBy(100) // 忽略不压缩图片大小
|
||||
.filter(new CompressionPredicate() {
|
||||
@Override
|
||||
public boolean apply(String path) {
|
||||
return !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"));
|
||||
}
|
||||
})
|
||||
.setCompressListener(new OnCompressListener() {
|
||||
@Override
|
||||
public void onStart() {
|
||||
// 压缩开始前调用
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(File file) {
|
||||
// 压缩成功后调用
|
||||
if(callback!= null){
|
||||
callback.success(file);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
// 当压缩过程出现问题时调用
|
||||
}
|
||||
}).launch();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user