Android应用中联网加载并显示图片时,为了用户体验和节省流量,一定用到图片的缓存
关于三级缓存的理解可以分为:
- 内存缓存(物理空间的缓存)
- 本地缓存(java对象的缓存)
- 网络缓存
首先为大家介绍一个现在比较成熟应用也比较广泛的第三方开源的工具类 xUtils系列之BitmapUtils
接下来我们将通过自己的代码为大家分析BitmapUtils实现图片加载等一系列工作的原理
- 第一步:创建三个类NetCacheUtils(用于网络缓存)
LocalCacheUtils(用于本地缓存)
MemoryCacheUtils(用于内存缓存) - 第二步:创建MyBitmapUtils类,用于处理用户加载图片的请求
创建本地缓存类LocalCacheUtils:
public class LocalCacheUtils {
public static final String CACHE_PATH = Environment
.getExternalStorageDirectory().getAbsolutePath() + "/zhwh";
public Bitmap getBitmap(String url) {
String fiaeneme;
try {
fiaeneme = MD5Encoder.encode(url);
File file = new File(CACHE_PATH, fiaeneme);
if(file.exists()){
Bitmap bitmap=BitmapFactory.decodeStream(new FileInputStream(file));
System.out.println("内地缓存执行。。。。。。");
return bitmap;
}
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param @param url
* @param @param bitmap
* @return void
*/
public void setBitmap(String url, Bitmap bitmap) {
try {
String fiaeneme = MD5Encode