Android 开源框架 ( 二 ) 图片加载框架ImageLoader

一:特点

 1)多线程下载图片,图片可以来源于网络,文件系统,项目文件夹 assets 中以及 drawable中等 

2)支持随意的配置 ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 

3)支持图片的内存缓存,文件系统缓存或者 SD 卡缓存 

4)支持图片下载过程的监听

 5)根据控件(ImageView)的大小对 Bitmap 进行裁剪,减少 Bitmap 占用过多的内存

 6)较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView 中,滑动过程中暂停加载图片,停止滑动的时候去加载图片 

7)提供在较慢的网络下对图片进行加载

二.基本使用

1. 添加依赖

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

2.Application初始化

// 初始化参数
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                .threadPriority(Thread.NORM_PRIORITY - 2)               // 线程优先级
                .denyCacheImageMultipleSizesInMemory()                  // 当同一个Uri获取不同大小的图片,缓存到内存时,只缓存一个。默认会缓存多个不同的大小的相同图片
                .discCacheFileNameGenerator(new Md5FileNameGenerator()) // 将保存的时候的URI名称用MD5
                .tasksProcessingOrder(QueueProcessingType.LIFO)         // 设置图片下载和显示的工作队列排序
                .writeDebugLogs()                                       // 打印debug log
                .build();

        // 全局初始化此配置
        ImageLoader.getInstance().init(config);

3.基本使用

mageLoader.displayImage(Constants.IMAGES[position],holder.iv,options);

private DisplayImageOptions options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.atguigu_logo)          // 设置图片下载期间显示的图片
            .showImageForEmptyUri(R.drawable.atguigu_logo)  // 设置图片Uri为空或是错误的时候显示的图片
            .showImageOnFail(R.drawable.atguigu_logo)       // 设置图片加载或解码过程中发生错误显示的图片
            .cacheInMemory(true)                        // 设置下载的图片是否缓存在内存中
            .cacheOnDisk(true)                          // 设置下载的图片是否缓存在SD卡中
            .displayer(new RoundedBitmapDisplayer(20))  // 设置成圆角图片
            .build();                                   // 创建配置过得DisplayImageOption对象;        
原文地址:https://www.cnblogs.com/ITyunlin/p/11732970.html