ImageLoader图片异步加载详解
来源:互联网 发布:unity3d和虚幻4 比较 编辑:程序博客网 时间:2024/06/05 00:09
一.简介
多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等
支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置
支持图片的内存缓存,文件系统缓存或者SD卡缓存
支持图片下载过程的监听
根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片
提供在较慢的网络下对图片进行加载
二.代码实现
2.build.gradle中
3.1存入SD卡
3.2在另一个类中引用
4 .MyApp中
4.1不存入SD卡
以上只是部分代码,其中(data.get(i).getImg()是获取的json中的数据)
多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等
支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置
支持图片的内存缓存,文件系统缓存或者SD卡缓存
支持图片下载过程的监听
根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片
提供在较慢的网络下对图片进行加载
二.代码实现
1.项目清单文件设置
<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_FORMAT_FILESYSTEMS"></uses-permission>//删除缓存图片 <application android:name=".MyApp">
2.build.gradle中
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'3.在MyApp中
3.1存入SD卡
public class MyApp extends Application{ @Override public void onCreate() { super.onCreate(); //得到地址存入图片 String path = Environment.getExternalStorageDirectory().getPath() + "/image"; File file = new File(path); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this) .memoryCacheExtraOptions(200, 200)//配置内存缓存图片的尺寸 .memoryCacheSize(2 * 1024 * 1024)//配置内存缓存的大小 .threadPoolSize(3)//配置加载图片的线程数 .threadPriority(1000)//配置线程的优先级 .diskCache(new UnlimitedDiskCache(file))//UnlimitedDiskCache 限制这个图片的缓存路径 .diskCacheFileCount(50)//配置sdcard缓存文件的数量 .diskCacheFileNameGenerator(new Md5FileNameGenerator())//MD5这种方式生成缓存文件的名字 .diskCacheSize(50 * 1024 * 1024)//在sdcard缓存50MB .build();//完成 ImageLoader.getInstance().init(config); } }
3.2在另一个类中引用
DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) //加载图片时的图片 .showImageOnFail(R.mipmap.ic_launcher) //加载失败时的图片 .cacheInMemory(true) //启用内存缓存 .displayer(new RoundedBitmapDisplayer(20)) //设置显示风格这里是圆角矩形 .cacheInMemory(true)//让图片进行内存缓存 .cacheOnDisk(true)//让图片进行sdcard缓存 .build(); ImageLoader.getInstance().displayImage(data.get(i).getImg(),holderOne.one_img,options);
4 .MyApp中
4.1不存入SD卡
DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) .displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true) .cacheInMemory(true).build(); ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(this) .defaultDisplayImageOptions(options).threadPoolSize(5) .build(); ImageLoader.getInstance().init(configs);4.2在另一个类中
ImageLoader.getInstance().displayImage(data.get(i).getImg(),holderOne.one_img,options);
以上只是部分代码,其中(data.get(i).getImg()是获取的json中的数据)
阅读全文
1 0
- ImageLoader图片异步加载详解
- 图片异步加载ImageLoader
- ImageLoader异步加载图片
- ImageLoader 图片异步加载
- Imageloader 图片加载详解
- imageloader异步加载网络图片
- ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用ImageLoader实现图片异步加载
- 使用Imageloader异步加载网络图片
- 使用ImageLoader实现图片异步加载
- 异步加载图片框架ImageLoader的使用
- ImageLoader异步加载图片框架浅谈
- Android 使用ImageLoader实现图片异步加载
- 三个整数排列大小
- iOS开发-Protocol协议及委托代理(Delegate)传值
- [嵌入式Linux驱动]S5PV210的DHT11温湿度传感器Linux驱动
- pod头文件和pch文件路径问题
- 然后是几点
- ImageLoader图片异步加载详解
- 生产者消费者问题
- 汇编语言学习笔记--基础知识篇
- 206. Reverse Linked List。
- Android多进程应用
- (七)数据结构之搜索二叉树的简单实现
- 求两个数的最大公约数
- linux文件配色+vim配置
- 特别垃圾的redis 数据同步