优化用户头像修改压缩上传

This commit is contained in:
kehaoyuan
2018-08-10 15:44:06 +08:00
parent f66ee1721e
commit 8f15e52eb5
3 changed files with 162 additions and 138 deletions

View File

@ -2,15 +2,17 @@ package com.gh.common.view;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.lightgame.utils.Utils;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class CropImageCustom extends RelativeLayout {
@ -59,23 +61,26 @@ public class CropImageCustom extends RelativeLayout {
}
public boolean savePicture(String path) {
float limitSize = 900;
int quality = 90;
Bitmap bitmap = mZoomImageView.clip();
File file = new File(path);
int quality = 80;
do {
try {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, bos);
bos.flush();
bos.close();
} catch (IOException e) {
file.delete();
e.printStackTrace();
return false;
}
quality -= 10;
} while (file.length() > 81920);
if (bitmap.getHeight() > limitSize || bitmap.getWidth() > limitSize) {
Matrix matrix = new Matrix();
matrix.setScale(limitSize / bitmap.getWidth(), limitSize / bitmap.getHeight());
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.WEBP, quality, bos);
bos.flush();
bos.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}