简单的设置磁盘缓存
加入Fresco依赖
implementation 'com.facebook.fresco:fresco:1.11.0'
全局Application中设置
//设置磁盘缓存
DiskCacheConfig cacheConfig = DiskCacheConfig.newBuilder(this)
.setBaseDirectoryName("fimages")
.setBaseDirectoryPath(Environment.getExternalStorageDirectory())
.build();
//设置磁盘缓存的配置,生成配置文件
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(cacheConfig)
.build();
Fresco.initialize(this,config);
简单配置最大的缓存大小
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);
}
网友评论