UIL的功能及优点(转)
支持从网络,本地,项目内读取图片
多线程下载图片
支持图片下载进度监听
支持图片加载起始,加载中,加载结束等毁掉函数
包含内存缓存和磁盘缓存, 并可进行缓存大小等参数的配置
支持占位图,及图片加载过程中图片,以及图片加载失败图片的显示
支持图片加载成功后再处理
支持对bitmap裁剪等处理
可在ListView等滚动控件发生滚动时,暂定图片加载
提供在网路较慢时图片的加载
扩展性强,内存缓存和磁盘缓存策略可自行实现,图片加载各种参数也可自由配置!
先在配置文件中加入:
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
然后新建一个"ImageLoaderManger"文件 public class ImageLoaderManger { /** * 默认参数 */ private static final int THREAD_COUNT = 4; //表示有几条UIL最多可以有多少条线程 private static final int PROPRITY = 2; //表示我们的图片加载的优先级 private static final int DISK_CACHE_SIZE = 50 * 1024 * 1024; //表示缓存最大存储的空间 private static final int CONNECTION_TIME_OUT = 5 * 1000;//连接超时时间 private static final int READ_TIME_OUT = 30 * 1000;//读取超时时间 private static ImageLoader mImageLoader = null; private static ImageLoaderManger mImageLoaderManger; public static ImageLoaderManger getmImageLoaderManger(Context context){ if (mImageLoaderManger==null){ mImageLoaderManger = new ImageLoaderManger(context); } return mImageLoaderManger; } private ImageLoaderManger(Context context){ ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context) .threadPoolSize(THREAD_COUNT) //配置图片下载线程最大数量 .threadPriority(Thread.NORM_PRIORITY - PROPRITY) .denyCacheImageMultipleSizesInMemory()//设置是否可以缓存不同尺寸的视图 .memoryCache(new WeakMemoryCache()) //使用弱引用内存缓存 .diskCacheSize(DISK_CACHE_SIZE) //分配硬盘缓存大小存储图片 .diskCacheFileNameGenerator(new Md5FileNameGenerator())//设置图片命名规则(MD5) .tasksProcessingOrder(QueueProcessingType.FIFO)//图片下载顺序 .defaultDisplayImageOptions(getDefultOptions())//设置默认图片加载Options .imageDownloader(new BaseImageDownloader(context,CONNECTION_TIME_OUT,READ_TIME_OUT))//设置图片下载器 .writeDebugLogs()//设置dubug模式下打印日志 .build(); ImageLoader.getInstance().init(configuration); mImageLoader = ImageLoader.getInstance(); } private DisplayImageOptions getDefultOptions(){ DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.loadfailure)//定义图片地址为空的时候加载的图片 .showImageOnFail(R.drawable.loadfailure)//定义图片加载失败的默认图片 .cacheInMemory(true) //设置图片是否可以缓存在内存 .cacheOnDisk(true)//设置图片是否可以缓存在硬盘 .bitmapConfig(Bitmap.Config.RGB_565)//使用图片解码类型 .decodingOptions(new BitmapFactory.Options())//图片解码配置 .build(); return displayImageOptions;
}
}
未完...