Fresco缓存及设置大小

2019-03-01  本文已影响0人  Spl_none

简单的设置磁盘缓存

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

上一篇 下一篇

猜你喜欢

热点阅读