美文网首页
Fresco缓存及设置大小

Fresco缓存及设置大小

作者: Spl_none | 来源:发表于2019-03-01 15:43 被阅读0次

简单的设置磁盘缓存

加入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);
    }

相关文章

网友评论

      本文标题:Fresco缓存及设置大小

      本文链接:https://www.haomeiwen.com/subject/jsiduqtx.html