项目简介
本项目是一个基于Fresco和Glide框架的图片加载库,提供高度可扩展的图片加载解决方案。支持Fresco、Glide和Picasso等多种图片加载框架,默认封装了Glide和Fresco。开发者能方便地在不同框架间切换,还具备图片特效、实时进度监听、图片下载和缓存管理等功能。
项目的主要特性和功能
- 多框架支持:支持Fresco、Glide、Picasso等主流图片加载框架,便于开发者切换。
- 图片特效:提供多种特效,如圆角、模糊、对比度调整等,支持自定义特效参数。
- 实时进度监听:支持监听图片加载实时进度,便于实现进度条功能。
- 图片下载:支持图片下载并插入系统相册,提供下载成功和失败回调。
- 缓存管理:支持内存缓存和磁盘缓存管理,可获取缓存大小和清理缓存。
- 图片测量:支持不加载图片直接测量尺寸,适用于预先获取图片尺寸的场景。
- 列表优化:配合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】