littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于Fresco和Glide框架的图片加载库

项目简介

本项目是一个基于Fresco和Glide框架的图片加载库,提供高度可扩展的图片加载解决方案。支持Fresco、Glide和Picasso等多种图片加载框架,默认封装了Glide和Fresco。开发者能方便地在不同框架间切换,还具备图片特效、实时进度监听、图片下载和缓存管理等功能。

项目的主要特性和功能

  1. 多框架支持:支持Fresco、Glide、Picasso等主流图片加载框架,便于开发者切换。
  2. 图片特效:提供多种特效,如圆角、模糊、对比度调整等,支持自定义特效参数。
  3. 实时进度监听:支持监听图片加载实时进度,便于实现进度条功能。
  4. 图片下载:支持图片下载并插入系统相册,提供下载成功和失败回调。
  5. 缓存管理:支持内存缓存和磁盘缓存管理,可获取缓存大小和清理缓存。
  6. 图片测量:支持不加载图片直接测量尺寸,适用于预先获取图片尺寸的场景。
  7. 列表优化:配合RecycleView或ListView滑动事件,实现图片加载的暂停和恢复,节省系统资源。

安装使用步骤

假设用户已下载本项目的源码文件,按以下步骤集成使用:

1. 导入依赖

在项目的build.gradle文件中添加以下依赖: groovy implementation 'com.michael007js:Lib:1.1.1' implementation 'com.facebook.fresco:fresco:1.9.0' // Fresco implementation 'com.facebook.fresco:animated-gif:1.9.0' // Fresco 支持 GIF 动图 implementation 'jp.wasabeef:fresco-processors:2.1.0' // Fresco 图像引擎 implementation 'jp.wasabeef:glide-transformations:3.3.0' // Glide 图像引擎 implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1' // GPU Filters

2. 初始化图片加载管理器

Application类中初始化图片加载管理器: java Fresco.initialize(this, FrescoImagePipelineConfig.getDefaultImagePipelineConfig(this)); ImageloadManager.getInstance().build(new ImageloadManager.Builder().setImageLoad(new FrescoImageLoad()));

3. 使用API加载图片

以下是完整的常用API调用示例: ```java ImageloadManager.getInstance() .load("http://img1.gtimg.com/house_wuhan/pics/hv1/0/16/1926/125242230.jpg") // 图片地址 .setDuration(100) // 淡入淡出时间(ms) .setThumbnail(true) // 渐进式加载 .setRoundAngle(20f) // 圆角 .centerCrop() // 居中裁剪 .fitCenter() // 适应中心 .circleCrop() // 圆形裁剪 .setPlacesHolderImageInt(R.mipmap.ic_launcher) // 占位图 .setErrorImageInt(R.mipmap.ic_launcher) // 错误图 .setGif(false) // 是否为GIF .setImageType(ImageType.Toon) // 卡通特效 .setOnImageloadSuccessOrFailCallBack(new OnImageloadSuccessOrFailCallBack() { @Override public void onSuccess(int imageWidth, int imageHeight) { // 图片加载成功回调 }

    @Override
    public void onFail(View view, Exception e) {
        // 图片加载失败回调
    }
})
.into((ImageloadView) findViewById(R.id.pic)); // 加载到指定视图

```

4. 监听图片加载进度

java .setOnProgressCallBack(new OnProgressCallBack() { @Override public void onProgress(int percentage) { // 图片实时加载进度回调 } })

5. 测量图片尺寸

```java ImageloadManager.getInstance() .load("http://img1.gtimg.com/house_wuhan/pics/hv1/0/16/1926/125242230.jpg") .setOnMeasureImageSizeCallBack(new OnMeasureImageSizeCallBack() { @Override public void onMeasureImageSize(int imageWidth, int imageHeight) { // 测量成功后回调 }

    @Override
    public void onMeasureImageFail(Throwable throwable) {
        // 测量失败后回调
    }
})
.measureImage(this); // 开始测量

```

6. 下载图片

```java ImageloadManager.getInstance() .load("http://img1.gtimg.com/house_wuhan/pics/hv1/0/16/1926/125242230.jpg") .setDownloadFileName(System.currentTimeMillis() + "") .setNotifyUpdateGallery(true) .setOnDownloadImageSuccessOrFailCallBack(new OnDownloadImageSuccessOrFailCallBack() { @Override public void onDownloadImageSuccess(File file) { // 下载成功回调 }

    @Override
    public void onDownloadImageFail(Throwable failureCause) {
        // 下载失败回调
    }
})
.downLoadImage(this); // 开始下载

```

7. 清理缓存

java ImageloadManager.getInstance().clearCache(this, CacheType.All); 通过以上步骤,可在项目中集成使用本图片加载库,实现高效、灵活的图片加载和管理功能。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】