public class MyApp extends Application {
private static MyApp app;
@Override
public void onCreate() {
super.onCreate();
app=this;
//设置磁盘缓存
DiskCacheConfig cacheConfig = DiskCacheConfig.newBuilder(this)
.setBaseDirectoryName("fimages")
.setBaseDirectoryPath(Environment.getExternalStorageDirectory())
.build();
//设置磁盘缓存的配置,生成配置文件
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(cacheConfig)
.build();
Fresco.initialize(this,config);
frescoInit();
GreenDaoUtils.getInstance().setDataBase(this);
}
private static int MAX_MEM = 30* ByteConstants.MB;
private ImagePipelineConfig getConfigureCaches(Context context) {
final MemoryCacheParams bitmapCacheParams = new MemoryCacheParams(
// 内存缓存中总图片的最大大小,以字节为单位。
MAX_MEM,
// 内存缓存中图片的最大数量。
Integer.MAX_VALUE,
// 内存缓存中准备清除但尚未被删除的总图片的最大大小,以字节为单位。
MAX_MEM,
// 内存缓存中准备清除的总图片的最大数量。
Integer.MAX_VALUE,
// 内存缓存中单个图片的最大大小。
Integer.MAX_VALUE);
Supplier<MemoryCacheParams> mSupplierMemoryCacheParams = new Supplier<MemoryCacheParams>() {
@Override
public MemoryCacheParams get() {
return bitmapCacheParams;
}
};
ImagePipelineConfig.Builder builder = ImagePipelineConfig.newBuilder(context);
builder.setBitmapMemoryCacheParamsSupplier(mSupplierMemoryCacheParams);
return builder.build();
}
private void frescoInit() {
Fresco.initialize(this, getConfigureCaches(this));
Fresco.initialize(this);
}
public static MyApp getApp(){
return app;
}
}