Universal-Image-Loader框架的基本使用

来源:互联网 发布:阿里云 关闭快照功能 编辑:程序博客网 时间:2024/05/16 18:43
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

1.导入依赖
  1. compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.4’

2.在AndroidManifest.xml里面配置ImageLodaer需要的权限
  1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  3. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

3.在应用的Application中配置ImageLoaderConfiguration,该配置只能在应用中配置一次,配置多次无效。
  1. File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext()); //缓存文件夹路径
  2. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
  3. .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
  4. .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
  5. .threadPoolSize(3) // default 线程池内加载的数量
  6. .taskExecutor(...)
  7. .taskExecutorForCachedImages(...)
  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(); //开始构建

这些配置一般最好在Application中进行配置(根据自己实际情况进行配置,没有必要也不需要全部进行配置),全局调用。配置好这些后,记得调用ImageLoader.getInstance().init(config); 进行初始化。但是如果你觉的麻烦可以使用默认的配置ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this); 不推荐使用默认配置。

4.如何使用ImageLoader来展示图片呢?
  1. ImageLoader mImageLoader = ImageLoader.getInstance();

ImageLoader 是单例模式,提供了如下方法:

  1. ImageLoader.getInstance().displayImage(uri, imageView);
  2. ImageLoader.getInstance().displayImage(uri, imageView, options);
  3. ImageLoader.getInstance().displayImage(uri, imageView, listener);
  4. ImageLoader.getInstance().displayImage(uri, imageView, options, listener);
  5. ImageLoader.getInstance().displayImage(uri, imageView, options, listener, progressListener);
  6. ImageLoader.getInstance().loadImage(uri, imageView);
  7. ImageLoader.getInstance().loadImage(uri, imageView, options);
  8. ImageLoader.getInstance().loadImage(uri, imageView, listener);
  9. ImageLoader.getInstance().loadImage(uri, imageView, options, listener);
  10. ImageLoader.getInstance().loadImage(uri, imageView, options, listener, progressListener);

5.demo实现
使用Universal-Image-Loader框架实现ListView的图片加载、GridView的图片加载、ViewPager的图片加载、Gallery画廊的图片加载、Widget的使用。demo地址:http://download.csdn.net/download/wwj_748/5975847 
显示效果如下:
 



Universal-Image-Loader框架就介绍到这了,相对于Picasso 和 Glide框架来说使用比较复杂,具体如何使用,请参考以下资料:
Android图片缓存框架Android-Universal-Image-Loader的使用详解http://blog.csdn.net/richardli1228/article/details/49183157 
Android开源框架ImageLoader的完美例子 http://www.cnblogs.com/zgz345/p/3502315.html  

原创粉丝点击