魯班壓縮大家應(yīng)該也是非常熟悉的,這里用遞歸的方法一張一張壓縮,所以如果圖片數(shù)量較多的話全部壓縮完會(huì)比較慢,可以根據(jù)自己的情況做修改。
原項(xiàng)目:https://github.com/Curzibn/Luban
// compile 'top.zibin:Luban:1.0.9'
importandroid.content.Context;
importandroid.util.Log;
importcom.mxkj.yuanyintang.activity.PublishActivity;
importjava.io.File;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.List;
importtop.zibin.luban.Luban;
importtop.zibin.luban.OnCompressListener;
// compile 'top.zibin:Luban:1.0.9'
public classIMGCompressUtils {
public static intcount;
public staticListfiles=newArrayList<>();
public staticListCompressorImage1(intnum, finalContext context, finalList path, finalCompressCallback callback)throwsIOException {
if(num ==0) {
files.clear();
count= num;
}
File actualImage =newFile(path.get(count));
Luban.with(context)
.load(actualImage)//傳人要壓縮的圖片
.putGear(3)
.setCompressListener(newOnCompressListener() {//設(shè)置回調(diào)
@Override
public voidonStart() {
}
@Override
public voidonSuccess(File file) {
Log.e("TAG","壓縮第幾張: "+count+"====="+ file.getAbsolutePath());
files.add(file);
Log.e("TAG","files.size: "+files.size() );
count++;
if(files.size() ==path.size()) {
callback.fileCallback(files);
count=0;
files.clear();
}else{
try{
CompressorImage1(count,context,path,callback);
}catch(IOException e) {
e.printStackTrace();
}
} }
@Override
public voidonError(Throwable e) {
}
}).launch();//啟動(dòng)壓縮
/* Luban.get(context)
.load(actualImage) //傳人要壓縮的圖片
.putGear(3) //設(shè)定壓縮檔次,默認(rèn)三擋(據(jù)說(shuō)最接近朋友圈??)
.setCompressListener(new OnCompressListener() {
@Override
public void onStart() {
}
@Override
public void onSuccess(File file) {
Log.e("TAG", "壓縮第幾張: " + count + "路徑-------->" + file.getAbsolutePath());
files.add(file);
count++;
if (files.size() == path.size()) {
callback.fileCallback(files);
count=0;
files.clear();
} else {
CompressorImage1(count, context, path, callback);
}
}
@Override
public void onError(Throwable e) {
}
}) //設(shè)置壓縮監(jiān)聽(tīng)器
.launch(); */ //啟動(dòng)壓縮
returnfiles;
}
public interfaceCompressCallback {
voidfileCallback(List files);
}
}