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) 回复
??
回复评论