ImageLoader总结
来源:互联网 发布:数据库管理发展三阶段 编辑:程序博客网 时间:2024/05/17 00:07
ImageLoader
ImageLoader目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。特点是使用简单,效率凑合。
原理
在显示图片的时候,它会在内存中查找;如果没有,就去本地查找;如果还没有,就开一个新的线程去下载这张图片,下载成功后会把图片同时缓存在内存和本地。
github地址:https://github.com/nostra13/Android-Universal-Image-Loader
使用
1.ImageLoaderConfiguration
//在自定义的MyApplication中总体配置ImageLoaderpublic class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( getApplicationContext()) .threadPriority(Thread.NORM_PRIORITY - 2) .memoryCacheExtraOptions(480, 480) .memoryCacheSize(2 * 1024 * 1024) .denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()) .tasksProcessingOrder(QueueProcessingType.LIFO) .memoryCache(new WeakMemoryCache()).build(); ImageLoader.getInstance().init(config); }}
2.ImageLoader
//在使用ImageView加载图片的地方,配置当前页面的ImageLoader选项。public class PersonAdapter extends BaseAdapter { private final ArrayList<Person> personList; private final AppBaseActivity context; private DisplayImageOptions options; public PersonAdapter(ArrayList<Person> personList, AppBaseActivity context) { this.personList= personList; this.context = context; options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.ic_launcher) .showImageForEmptyUri(R.drawable.ic_launcher) .cacheInMemory() .cacheOnDisc() .build(); } ......
3. DisplayImageOptions
//在使用ImageView加载图片的地方,使用ImageLoaderPerson person = personList.get(position);holder.tvUserName.setText(person.getUserName());holder.tvCityName.setText(person.getCityName());context.imageLoader.displayImage(personList.get(position) .getUserPhotoUrl(), holder.imgPhoto);
优化
图片一直会缓存在内存中,会导致内存占用过高。虽然这个是软引用,内存不够的时候会GC,但是还是应该要减少GC的次数,因此在页面销毁时,清除缓存。
protected void onDestroy() { //回收该页面缓存在内存的图片 imageLoader.clearMemoryCache(); super.onDestroy();}
0 0
- ImageLoader总结
- Android ImageLoader用法总结
- ImageLoader用法总结
- ImageLoader和GridView小总结
- ImageLoader的使用及总结
- 《新闻阅读器》总结”三“ ImageLoader
- ImageLoader
- ImageLoader
- ImageLoader
- ImageLoader
- ImageLoader
- imageloader
- ImageLoader
- ImageLoader
- imageLoader
- ImageLoader
- ImageLoader
- ImageLoader
- zzu 10452: "分"数(控制数量的01背包)@
- 含继承在内的初始化过程 ——《Thinking in java》 读书笔记之一
- LeetCode 104 Maximum Depth of Binary Tree题解
- 欢迎使用CSDN-markdown编辑器
- 使用Geogebra和Tikz作图
- ImageLoader总结
- noip2016(tg)题解
- jemalloc 3.6.0源码详解—[3]Run and bins
- Android笔记——adb指令
- 图的遍历
- endnote 使用方法
- Spring的setter注入和构造器注入
- JAVA字符串格式化-String.format()的使用
- mysql数据库简介