private void init(Context context) {
        ImagePipelineConfig.Builder builder = ImagePipelineConfig.newBuilder(context)
                .setDownsampleEnabled(true);
        String cache = BoxingFileHelper.getCacheDir(context);

        if (TextUtils.isEmpty(cache)) {
            throw new IllegalStateException("the cache dir is null");
        }
        if (!TextUtils.isEmpty(cache)) {
            DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder(context)
                    .setBaseDirectoryPath(new File(cache))
                    .setBaseDirectoryName(IMAGE_PIPELINE_CACHE_DIR)
                    .setMaxCacheSize(MAX_DISK_CACHE_SIZE)
                    .setMaxCacheSizeOnLowDiskSpace(MAX_DISK_CACHE_LOW_SIZE)
                    .setMaxCacheSizeOnVeryLowDiskSpace(MAX_DISK_CACHE_VERYLOW_SIZE)
                    .build();
            builder.setMainDiskCacheConfig(diskCacheConfig);
        }
        ImagePipelineConfig config = builder.build();
        Fresco.initialize(context, config);
    }
use Fresco(https://github.com/facebook/fresco) to display medias.
can <b>not</b> be used in Production Environment.

fresco strongly suggest to use DraweeView instead of ImageView, according to https://github.com/facebook/fresco/issues/1550.

@author ChenSL
app/src/main/java/com/bilibili/boxing/impl/BoxingFrescoLoader.java