使用ImageLoader 首先在Application启动里面配置(也可以局部配置)
//注意点:必须在配置文件<application>里面配置name ;还有加权限 Internet(连网权限) WRITE_EXTERNAL_STORAGE(可写的外部存储) 缓存本地
DisplayImageOptions options=new DisplayImageOptions.Builder()
.showImageOnLoading();//加载时候图片
.showImageForEmptyUri();//uri为空的或错误信息
.showImageOnFail();//图片加载 解码过程错误的图片 没网的时候~
.delayBeforeLoading(下载前延迟(int))
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
.displayer( new RoundedBitmapDisplayer(360) )//圆角图***
.cacheOnDisk(true)//缓存在外存(本地文件)
.cacheInMemory(true)//缓存在内存
.considerExifParams(true)//启用EXIF和JPEG图片格式(旋转,翻转)
.build();
ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder()
.defaultDisplayImageOptions(options)//同步 把options设置给config
.threadPoolSize(3)//线程数量
.diskCache( new UnlimitedDiskCache("路径") )//自定义本地路径*****(getCacheDir())
.threadPriority(Thread.NORM_PRIORITY-2)//线程池优先级
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//磁盘缓存的,图片名称进行md5加密
.discCacheFileCount(100) //缓存的文件数量
.discCacheSize(50 * 1024 * 1024)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.build();
//最后初始化imageLoader
ImageLoader.getInstance().init(config);
//完成配置
//开始使用
ImageLoader.getInstance().displayImage(url,ImageView);
ImageLoader.getInstance().displayImage(url,ImageView new ImageLoadingListener(){});//回调方法
如果你觉得传入ImageLoaderListener太复杂了,我们可以使用SimpleImageLoadingListener类,该类提供了ImageLoaderListener接口方法的空实现,使用的是缺省适配器模式
- String imageUrl = "https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg";
- ImageLoader.getInstance().loadImage(imageUrl, new SimpleImageLoadingListener(){
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- super.onLoadingComplete(imageUri, view, loadedImage);
- mImageView.setImageBitmap(loadedImage);
- }
- });
- String imageUrl = "https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg";
- ImageSize mImageSize = new ImageSize(100, 100); //****** size
- ImageLoader.getInstance().loadImage(imageUrl, mImageSize, new SimpleImageLoadingListener(){
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- super.onLoadingComplete(imageUri, view, loadedImage);
- mImageView.setImageBitmap(loadedImage);
- }
- });