封装Android图片加载库
独立依赖库
implementation 'com.excellence
_latestVersion'
// 下面图库三选一,减小安装包大小
implementation 'com.excellence
_latestVersion'
implementation 'com.excellence
_latestVersion'
implementation 'com.excellence
_latestVersion'
权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
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 |