[java]代码库
package com.example.day15_imageloader;
import java.io.File;
import android.app.Application;
import android.os.Environment;
import android.util.Log;
import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.FIFOLimitedMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LargestLimitedMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LimitedAgeMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration.Builder;
public class MyApplication extends Application {
private File externalStorageDirectory;
private long maxMemory;
@Override
public void onCreate() {
super.onCreate();
// 得到当前程序在系统中能申请的最大内存
maxMemory = Runtime.getRuntime().maxMemory() / 1024/ 1024;
Log.d("logd", "能申请的最大内存: " + maxMemory);
externalStorageDirectory = Environment.getExternalStorageDirectory();
// 初始化ImageLoader的配置
initImageLoader();
}
private void initImageLoader() {
// 得到ImageLoader实例
ImageLoader imageLoader = ImageLoader.getInstance();
// 得到ImageLoader参数配置建造者对象
ImageLoaderConfiguration.Builder builder = new Builder(this);
// sd卡缓存策略
// 参数一:在sd卡中图片缓存的目录
// 参数二:当参数一的目录不可用时,在sd卡中图片缓存的备用目录
// 参数三:图片文件名命名(加密)方式,MD5加密,hash码加密
// 参数四:秒数值,就是图片存活的时长
builder.diskCache(new LimitedAgeDiskCache(new File(externalStorageDirectory.getName()),
new File(externalStorageDirectory.getName()), new Md5FileNameGenerator(), 60));
// UnlimitedDiskCache:没有限制
// 设置图像的最大磁盘缓存大小(以字节为单位)。
// 默认情况下:磁盘缓存是无限的。
builder.diskCacheSize(10 * 1024 * 1024);
// 内存缓存策略,先进先出,参数:最大内存限制
builder.memoryCache(new FIFOLimitedMemoryCache(10 * 1024 * 1024));
// 内存缓存策略,达到设置的最大限制时,占内存最大的先删除
// builder.memoryCache(new LargestLimitedMemoryCache(maxMemory/8));
// 内存缓存策略,达到设置的最大存活时间时,就删除
// 参数一:MemoryCache对象
// 参数二:秒数值,就是图片存活的时长
// builder.memoryCache(new LimitedAgeMemoryCache(new
// LargestLimitedMemoryCache((int) (maxMemory/8)), 60));
// 算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
// builder.memoryCache(new LRULimitedMemoryCache((int) (maxMemory/8)));
// 初始化imageLoader,设置配置对象
imageLoader.init(builder.build());
// 使用默认的缓存策略
/*ImageLoader imageLoader2 = ImageLoader.getInstance();
ImageLoaderConfiguration.Builder builder2 = new Builder(this);
imageLoader2.init(builder2.build());*/
}
}
by: 发表于:2017-12-28 14:03:37 顶(0) | 踩(0) 回复
??
回复评论