概述
public classCompressHelper {private static volatileCompressHelper INSTANCE;privateContext context;/*** 最大宽度,默认为720*/
private float maxWidth = 720.0f;/*** 最大高度,默认为960*/
private float maxHeight = 960.0f;/*** 默认压缩后的方式为JPEG*/
private Bitmap.CompressFormat compressFormat =Bitmap.CompressFormat.JPEG;/*** 默认的图片处理方式是ARGB_8888*/
private Bitmap.Config bitmapConfig =Bitmap.Config.ARGB_8888;/*** 默认压缩质量为80*/
private int quality = 80;/*** 存储路径*/
privateString destinationDirectoryPath;/*** 文件名前缀*/
privateString fileNamePrefix;/*** 文件名*/
privateString fileName;public staticCompressHelper getDefault(Context context) {if (INSTANCE == null) {synchronized (CompressHelper.class) {if (INSTANCE == null) {
INSTANCE= newCompressHelper(context);
}
}
}returnINSTANCE;
}privateCompressHelper(Context context) {this.context =context;
destinationDirectoryPath= context.getCacheDir().getPath() + File.pathSeparator +FileUtil.FILES_PATH;
}/*** 压缩成文件
*@paramfile 原始文件
*@return压缩后的文件*/
publicFile compressToFile(File file) {returnBitmapUtil.compressImage(context, Uri.fromFile(file), maxWidth, maxHeight,
compressFormat, bitmapConfig, quality, destinationDirectoryPath,
fileNamePrefix, fileName);
}/*** 压缩为Bitmap
*@paramfile 原始文件
*@return压缩后的Bitmap*/
publicBitmap compressToBitmap(File file) {returnBitmapUtil.getScaledBitmap(context, Uri.fromFile(file), maxWidth, maxHeight, bitmapConfig);
}/*** 采用建造者模式,设置Builder*/
public static classBuilder {privateCompressHelper mCompressHelper;publicBuilder(Context context) {
mCompressHelper= newCompressHelper(context);
}/*** 设置图片最大宽度
*@parammaxWidth 最大宽度*/
public Builder setMaxWidth(floatmaxWidth) {
mCompressHelper.maxWidth=maxWidth;return this;
}/*** 设置图片最大高度
*@parammaxHeight 最大高度*/
public Builder setMaxHeight(floatmaxHeight) {
mCompressHelper.maxHeight=maxHeight;return this;
}/*** 设置压缩的后缀格式*/
publicBuilder setCompressFormat(Bitmap.CompressFormat compressFormat) {
mCompressHelper.compressFormat=compressFormat;return this;
}/*** 设置Bitmap的参数*/
publicBuilder setBitmapConfig(Bitmap.Config bitmapConfig) {
mCompressHelper.bitmapConfig=bitmapConfig;return this;
}/*** 设置压缩质量,建议80
*@paramquality 压缩质量,[0,100]*/
public Builder setQuality(intquality) {
mCompressHelper.quality=quality;return this;
}/*** 设置目的存储路径
*@paramdestinationDirectoryPath 目的路径*/
publicBuilder setDestinationDirectoryPath(String destinationDirectoryPath) {
mCompressHelper.destinationDirectoryPath=destinationDirectoryPath;return this;
}/*** 设置文件前缀
*@paramprefix 前缀*/
publicBuilder setFileNamePrefix(String prefix) {
mCompressHelper.fileNamePrefix=prefix;return this;
}/*** 设置文件名称
*@paramfileName 文件名*/
publicBuilder setFileName(String fileName) {
mCompressHelper.fileName=fileName;return this;
}publicCompressHelper build() {returnmCompressHelper;
}
}
}
最后
以上就是贪玩冬日为你收集整理的android压缩图片工具类,android -------- 压缩图片文件工具类的全部内容,希望文章能够帮你解决android压缩图片工具类,android -------- 压缩图片文件工具类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复