ImageLoaderFramework

Introduction: 打造统一的图片加载框架,融合 Glide(4.x),Fresco,不侵入业务代码,一套 API 兼容两种加载库
More: Author   ReportBugs   
Tags:
  • 打造统一的图片加载框架,融合 Glide,Fresco,一套 API 兼容两种加载方式
  • 两个底层包 Glide,Fresco 可随时相互替换,而无需大幅修改业务代码
  • 图片加载模块作为手机常用的一个重要模块,我们需要保证对它有完全的控制力,以适应产品随时变化的需求,因此我们就需要整合自己的图片加载框架,将它和业务代码分离,不过分依赖哪一个包,保证必要时可以替换。

  • 具体如何打造统一加载框架请参考这两篇文章《封装并实现统一的图片加载架构》,《项目重构之路——Fresco 非入侵式替换 Glide

  • 使用方式: ``` // 下面两个依赖包可选,根据需求二选一即可, compile 'com.ladingwu.library:fresco:0.0.8' compile 'com.ladingwu.library:glide:0.0.8' // 这个是必须的 compile "com.ladingwu.library:imageloader-framework:0.0.8"


- 初始化
    ImageLoaderConfig config = new ImageLoaderConfig.Builder(LoaderEnum.GLIDE,new GlideImageLocader())
            .maxMemory(40*1024*1024L)  // 配置内存缓存,单位为 Byte
            .build();
    ImageLoaderManager.getInstance().init(this,config);
初始化代码需要在 Application 中完成。


- 图片加载统一调用接口
showImage(@NonNull ImageLoaderOptions options);

> 该接口的具体实现 Glide 和 Fresco 各有不同


- 使用范例:
   // 加载圆角图片

ImageLoaderOptions op=new ImageLoaderOptions.Builder(img1,url).imageRadiusDp(12).build(); ImageLoaderManager.getInstance().showImage(op);

ImageLoaderOptions options=new ImageLoaderOptions.Builder(img2,url) .blurImage(true) // 高斯模糊
.blurValue(35) //高斯模糊程度 .isCircle() // 圆图
.placeholder(R.mipmap.ic_launcher)// 占位图 .build();

    // 如果项目同时使用了 Fresco 和 Glide,可以指定特定的加载框架加载图片                                      

ImageLoaderManager.getInstance().showImage(options, LoaderEnum.GLIDE); // 选择通过 Glide 加载图片


## 2018-03-04 更新

- 添加了对 Fresco 内存缓存的配置功能(Glide 暂时采用默认配置)。



## 2018-02-01 更新

- 添加了对于 Glide4.x 版本的支持
- 添加了圆图,圆角,高斯模糊的支持,并且保证 Glide 和 Fresco 的效果大体相同


## 2017-8-12 更新

- 添加图片暂停加载和恢复功能,方便优化处理
// 暂停加载
void pause(Context context);
// 恢复加载
void resume(Context context);

```

Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea