特点:
1、多线程异步加载和显示图片(图片来源于网络、sd卡、assets文件夹,drawable文件夹(不能加载9patch),新增加载视频缩略图)
2、支持通过“listener”监视加载的过程,可以暂停加载图片,在经常使用的ListView、GridView中,可以设置滑动时暂
停加载,停止滑动时加载图片(便于节约流量,在一些优化中可以使用)
3、缓存图片至内存时,可以更加高效的工作
4 、 高度可定制化(可以根据自己的需求进行各种配置,如:线程池,图片下载器,内存缓存策略等)5、支持图片的内存缓存,SD卡(文件)缓存
6 、在网络速度较慢时,还可以对图片进行加载并设
Image-Loader全局配置和使用
gradle和资源文件配置:
1. compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2. <uses-permission android:name="android.permission.INTERNET" />
参数配置:
1. File cacheDir = StorageUtils.getCacheDirectory(context); //缓存文件夹路径
2. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
3. .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
4. .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
5. .taskExecutor(...)
6. .taskExecutorForCachedImages(...)
7. .threadPoolSize(3) // default 线程池内加载的数量
8. .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
9. .tasksProcessingOrder(QueueProcessingType.FIFO) // default
10. .denyCacheImageMultipleSizesInMemory()
11. .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
12. .memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
13. .memoryCacheSizePercentage(13) // default
14. .diskCache(new UnlimitedDiscCache(cacheDir)) // default 可以自定义缓存路径
15. .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
16. .diskCacheFileCount(100) // 可以缓存的文件数量
17. // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
18. .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
19. .imageDownloader(new BaseImageDownloader(context)) // default
20. .imageDecoder(new BaseImageDecoder()) // default
21. .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
22. .writeDebugLogs() // 打印debug log
23. .build(); //开始构建