版权声明:1.版权归原作者Moment ° 回忆 ✨所有; 2.未经原作者允许不得转载本文内容,否则将视为侵权; 3.转载或者引用本文内容请注明来源及原作者; 4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。 https://blog.csdn.net/qq_35366269/article/details/83446640
1、将传入的Bitmap对象压缩并存储到本地文件中
try {
/*
通过Bitmap对象中compress函数实现将传入的bitmap图片进行压缩处理并写入到本地中
Bitmap.CompressFormat.JPEG 表示压缩后的图片格式,之所以选择jpeg格式作为图片的名称是因为该格式占用空间最小
100 表示压缩以后的图片质量,100表示质量最高
*/
bitmap.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(file1));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
2、地区本地的图片并转换为Bitmap对象
try {
if (file.exists()){
//读取指定图片文件并将其转换为Bitmap对象
Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(file));
return bitmap1;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
全部代码:
package com.casic.bitmaputils.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
* @author 郭宝
* @project: BitmapUtils
* @package: com.casic.bitmaputils.utils
* @date: 2018/10/27 0027 14:03
* @brief: 本地缓存图片工具
*/
public class LocalCacheImagesUtil {
//本地缓存路径
public static final String LOCAL_CACHE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/BitmapUtils";
/**
* 设置本地缓存
* @param url 传入URL是为了给本地图片设置名称使用的
* @param bitmap 要本地缓存的图片对象
*/
public void setLocalCache(String url, Bitmap bitmap){
File file = new File(LOCAL_CACHE_PATH);
//
if (!file.exists()||!file.isDirectory()){
//创建文件夹
file.mkdirs();
}
//因为图片URL地址中可能会有一些特殊符号,不太适合作为文件的名称,那么这时候就需要通过MD5将URL字符串进行加密处理,然后在作为文件名称存储
String fileName = MD5Util.md5(url);
File file1 = new File(LOCAL_CACHE_PATH, fileName);
try {
/*
通过Bitmap对象中compress函数实现将传入的bitmap图片进行压缩处理并写入到本地中
Bitmap.CompressFormat.JPEG 表示压缩后的图片格式,之所以选择jpeg格式作为图片的名称是因为该格式占用空间最小
100 表示压缩以后的图片质量,100表示质量最高
*/
bitmap.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(file1));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
/**
* 根据传入的url地址获取本地缓存的bitmap对象
* @param url
* @return
*/
public Bitmap getLocalCache(String url){
String fileName = MD5Util.md5(url);
File file = new File(LOCAL_CACHE_PATH,fileName);
try {
if (file.exists()){
//读取指定图片文件并将其转换为Bitmap对象
Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(file));
return bitmap1;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
}