- Fresco
- Picasso
- Glide
- Universal-ImageLoader
- Volley
- 多个图片加载库切换
- 图片加载进度回调
- 自定义配置(如占位图片、错误占位图片、缓存目录、大小等)
- 清除缓存
-
独立依赖库
implementation 'com.excellence:imageloader:_latestVersion' // 下面图库三选一,减小安装包大小 implementation 'com.excellence:imageloader-fresco:_latestVersion' implementation 'com.excellence:imageloader-picasso:_latestVersion' implementation 'com.excellence:imageloader-glide:_latestVersion'
-
权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
-
API
// 初始化,不同的加载器,有部分独立的方法 // 可以自定义实现ImageLoader接口,创建新的图库加载器 ImageLoaderOptions options = new ImageLoaderOptions.Builder().isLogEnable(true).isCache(false).build(); mImageLoader = new FrescoImageLoader(this, options); mImageLoader = new PicassoImageLoader(this, options); mImageLoader = new GlideImageLoader(this, options); // 统一的接口 public interface ImageLoader { /** * 加载资源图片 * * @param view * @param resId */ void loadImage(@NonNull ImageView view, @DrawableRes int resId); void loadImage(@NonNull ImageView view, @DrawableRes int resId, IListener listener); /** * 加载资源图片,占位图片,错误图片 * * @param view * @param resId * @param placeholderResId * @param errorResId */ void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId); void loadImage(@NonNull ImageView view, @DrawableRes int resId, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener); /** * 加载本地图片 * * @param view * @param file */ void loadImage(@NonNull ImageView view, @NonNull File file); void loadImage(@NonNull ImageView view, @NonNull File file, IListener listener); /** * 加载本地图片,占位图片,错误图片 * * @param view * @param file * @param placeholderResId * @param errorResId */ void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId); void loadImage(@NonNull ImageView view, @NonNull File file, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener); /** * 加载网络图片 * * @param view * @param url */ void loadImage(@NonNull ImageView view, @NonNull String url); void loadImage(@NonNull ImageView view, @NonNull String url, IListener listener); /** * 加载网络图片,占位图片,错误图片 * * @param view * @param url * @param placeholderResId * @param errorResId */ void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId); void loadImage(@NonNull ImageView view, @NonNull String url, @DrawableRes int placeholderResId, @DrawableRes int errorResId, IListener listener); void clearCache(); }
implementation 'com.facebook.fresco:fresco:1.9.0'
// 在 API < 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-base-support:0.12.0'
// 支持 GIF 动图,需要添加
compile 'com.facebook.fresco:animated-gif:0.12.0'
// 支持 WebP (静态图+动图),需要添加
compile 'com.facebook.fresco:animated-webp:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'
// 仅支持 WebP 静态图,需要添加
compile 'com.facebook.fresco:webpsupport:0.12.0'
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
implementation 'com.squareup.picasso:picasso:2.71828'
Picasso.get()
.load(url)
.resize(50, 50)
.centerCrop()
.into(imageView)
缓存路径:data/data/your package name/cache/picasso-cache/(默认路径)
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
Glide.with(getContext())
.load(url)
.skipMemoryCache(true)
.placeholder(drawable)
.centerCrop()
.animate(animator)
.into(img);
版本 | 描述 |
---|---|
1.0.0 | 封装Fresco、Picasso、Glide图库,简单加载图片 2018-10-11 |