Universal-Image-Loader框架的基本使用
Universal-Image-Loader框架下载地址:https://github.com/nostra13/Android-Universal-Image-Loader
jar包下载地址:https://raw.githubusercontent.com/nostra13/Android-Universal-Image-Loader/master/downloads/universal-image-loader-1.9.5.jar
jar包下载地址:https://raw.githubusercontent.com/nostra13/Android-Universal-Image-Loader/master/downloads/universal-image-loader-1.9.5.jar
1.导入依赖
compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.4’
2.在AndroidManifest.xml里面配置ImageLodaer需要的权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
-
3.在应用的Application中配置ImageLoaderConfiguration,该配置只能在应用中配置一次,配置多次无效。
File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext()); //缓存文件夹路径
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
.diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
.threadPoolSize(3) // default 线程池内加载的数量
.taskExecutor(...)
.taskExecutorForCachedImages(...)
.threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.memoryCacheSizePercentage(13) // default
.diskCache(new UnlimitedDiscCache(cacheDir)) // default 可以自定义缓存路径
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100) // 可以缓存的文件数量
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
.imageDownloader(new BaseImageDownloader(context)) // default
.imageDecoder(new BaseImageDecoder()) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs() // 打印debug log
.build(); //开始构建
这些配置一般最好在Application中进行配置(根据自己实际情况进行配置,没有必要也不需要全部进行配置),全局调用。配置好这些后,记得调用
ImageLoader.getInstance().init(config);
进行初始化。但是如果你觉的麻烦可以使用默认的配置ImageLoaderConfiguration
configuration = ImageLoaderConfiguration.createDefault(this);
不推荐使用默认配置。4.如何使用ImageLoader来展示图片呢?
ImageLoader mImageLoader = ImageLoader.getInstance();
ImageLoader 是单例模式,提供了如下方法:
ImageLoader.getInstance().displayImage(uri, imageView);
ImageLoader.getInstance().displayImage(uri, imageView, options);
ImageLoader.getInstance().displayImage(uri, imageView, listener);
ImageLoader.getInstance().displayImage(uri, imageView, options, listener);
ImageLoader.getInstance().displayImage(uri, imageView, options, listener, progressListener);
ImageLoader.getInstance().loadImage(uri, imageView);
ImageLoader.getInstance().loadImage(uri, imageView, options);
ImageLoader.getInstance().loadImage(uri, imageView, listener);
ImageLoader.getInstance().loadImage(uri, imageView, options, listener);
ImageLoader.getInstance().loadImage(uri, imageView, options, listener, progressListener);
5.demo实现
使用Universal-Image-Loader框架实现ListView的图片加载、GridView的图片加载、ViewPager的图片加载、Gallery画廊的图片加载、Widget的使用。demo地址:http://download.****.net/download/wwj_748/5975847
显示效果如下:
Universal-Image-Loader框架就介绍到这了,相对于Picasso 和 Glide框架来说使用比较复杂,具体如何使用,请参考以下资料: