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.csdn.net/download/wwj_748/5975847
显示效果如下:
Universal-Image-Loader框架就介绍到这了,相对于Picasso 和 Glide框架来说使用比较复杂,具体如何使用,请参考以下资料: