使用ImageLoader可以让我们方便在listview里对图片或者视频的第一帧图片显示。
1、添加依赖
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
2、新建一个MyApplication继承Application,并在onCreate()中创建ImageLoader的配置参数,并初始化到ImageLoader
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
File cacheDir = StorageUtils.getCacheDirectory(this);
//创建ImageLoaderConfiguration全局配置信息
ImageLoaderConfiguration build= new ImageLoaderConfiguration.Builder(this)
.threadPoolSize(5) // 线程池大小
.threadPriority(Thread.NORM_PRIORITY - 2) // 设置线程优先级
.memoryCacheSize(5 * 1024 * 1024) // 内存缓存大小
.diskCache(new UnlimitedDiskCache(cacheDir)) // 设置磁盘缓存策略
.diskCacheSize(50 * 1024 * 1024) // 设置磁盘缓存的大小
.diskCacheFileCount(50) // 磁盘缓存文件数量
.diskCacheFileNameGenerator(new Md5FileNameGenerator()) // 磁盘缓存时图片名称加密方式
.build();
//单例模式 懒汉式
//初始化imageloader
//初始化
ImageLoader.getInstance().init(build);
}
public DisplayImageOptions Options() {
//对图片进行参数设置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher_round) // 加载过程中的显示图片
.showImageForEmptyUri(R.mipmap.ic_launcher_round) // 路径为空时显示的图片
.cacheInMemory(true) // 需要缓存在内存中
.cacheOnDisk(true) // 需要缓存到磁盘中
.bitmapConfig(Bitmap.Config.RGB_565) // bitmap模式
.displayer(new RoundedBitmapDisplayer(90)) // 设置图片显示形式(圆角 or 渐变等)
.displayer(new CircleBitmapDisplayer()) // 设置图片显示形式(圆形)
.build();
return options;
}
}
3、添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
4、AndroidManifest.xml文件application标签添加
android:name="MyApplication"
5、使用方法
//加载图片 路径 控件
ImageLoader.getInstance().displayImage(path, imageView);
ImageLoader官网地址,无法打开请开梯子再试试:https://github.com/nostra13/Android-Universal-Image-Loader
网友评论