引用库 implementation 'id.zelory:compressor:2.1.0'
转成Bitmap
try {
bitmap = new Compressor(activity)
.setMaxWidth(640)
.setMaxHeight(480)
.setQuality(75)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath())
.compressToBitmap(file);
} catch (IOException e) {
e.printStackTrace();
}
转成File
try {
file2 = new Compressor(getContext())
.setMaxWidth(640)
.setMaxHeight(480)
.setQuality(75)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath())
.compressToFile(new File(picPath));
} catch (IOException e) {
e.printStackTrace();
}
显示多张图片
import android.content.Context;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Environment;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.parknfly.client.ui.Administration.tools.EditData;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import id.zelory.compressor.Compressor;
public class ImageLoader extends AsyncTask<String, Integer, Bitmap> {
Context context;
ImageView imageView;
int index;
public ImageLoader(Context context, ImageView imageView, int index) {
this.context = context;
this.imageView = imageView;
this.index = index;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Bitmap doInBackground(String... params) {
String imgUri = params[0];
Bitmap bit = null;
//是从服务器加载的
if (imgUri.contains("/Uploads/Picture")) {
try {
bit = Glide.with(context)
.asBitmap()
.load(imgUri)
.submit()
.get();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
//从本地上传的图片
File file = new File(imgUri);
try {
bit = new Compressor(context)
.setMaxWidth(640)
.setMaxHeight(480)
.setQuality(75)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath())
.compressToBitmap(file);
} catch (IOException e) {
e.printStackTrace();
}
}
return bit;
}
/**
* 更新 可以在列表中添加Progress 控件,显示加载进度
*
* @param values
*/
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
/**
* 完成
*
* @param bitmap
*/
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if (bitmap != null) {
EditData.getInstance(context).setBitmaps(index, bitmap);
imageView.setImageBitmap(bitmap);
}
}
}