universal image loader自己使用的一些感受
1、全局入口的Application定义初始化:
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(getApplicationContext())
.threadPoolSize(3) //线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 1) // default
.denyCacheImageMultipleSizesInMemory()
//.memoryCache(new WeakMemoryCache()) //也可以用自己的内存缓存实
.memoryCache(new LruMemoryCache(50 * 1024 * 1024)) //也可以用自己的内存缓存实现
.memoryCacheSize(50*1024*1024)
.diskCacheFileNameGenerator(new Md5FileNameGenerator()) //将保存的时候的URL名称用MD5加密
.tasksProcessingOrder(QueueProcessingType.FIFO) //先进先出
.diskCacheSize(200 * 1024 * 1024)
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(getApplicationContext())) // default
.imageDecoder(new BaseImageDecoder(true)) // default
//.writeDebugLogs() // Remove for release app
.build();
//全局初始化此配置
ImageLoader.getInstance().init(configuration);
2、显示设置:
/**
*用于显示图片的选项,没过渡时间
* 用于圈子社区,解决列表图片过多时,出现刷新闪烁的情况
*/
public static DisplayImageOptions OptionsWithCache = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.icon_no_photo)
.showImageOnFail(R.drawable.icon_no_photo)
.showImageForEmptyUri(R.drawable.icon_no_photo)//设置图片Uri为空或是错误的时候显示的图片
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
//EXACTLY_STRETCHED:图片会缩放到目标大小完全相同 EXACTLY :图像将完全按比例缩小的目标大小
//IN_SAMPLE_INT:图像将被二次采样的整数倍
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.resetViewBeforeLoading(false)
// .delayBeforeLoading(50) //载入图片前稍做延时可以提高整体滑动的流畅度
.displayer(new FadeInBitmapDisplayer(200)) //是否图片加载好后渐入的动画时间
.build();
3、如果ImageView设置了长宽大小:
建议用display,可以根据ImageView的大小来自动缩放图片,节省内存:
ImageLoader.getInstance().displayImage(pic_url, imageView,OptionsWithCache);
对于listView里面,图片可能因为滑动过快,导致错误重复,可以通过设置tag来处理:
public static void setImageWithTag(final String pic_url,final ImageView imageView,Context context) {
if(pic_url != null) {
String tag = (String) imageView.getTag();
if(tag == null) {
tag = "";
}
if(pic_url.equals(imageView.getTag())) {
return;
}
}
String picUrl = pic_url;
if(!picUrl.contains("http://")) {
picUrl = MyConfig.picFirst+picUrl;
}
//Log.i("main","loading pic:"+pic_url);
ImageLoader.getInstance().displayImage(picUrl, imageView, OptionsWithCache);
}
listView里面的设置:
SetImageUtils.setImageWithTag(picUrl,holder.iv,context);
holder.iv.setTag(picUrl);
4、一些图片加载过程中的监听:
//加载自定义配置的一个图片的,网络加载监听,等待加载图片完成再初始化缩小放大
ImageLoader.getInstance().displayImage(picurl,mImageView, SetImageUtils.OptionsWithCache, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
super.onLoadingStarted(imageUri, view);
Utility.setLoadingProgressbar(null,parentView,true);
} @Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
Utility.setLoadingProgressbar(null,parentView,false);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String s, View view, int i, int i1) {
//Log.i("main","i="+i+",il="+i1);
}
});
主要有ImageLoadingListener(或者其子类),和ImageLoadingProgressListener两种。
对于universal image loader 结合了内存、本地存储二级机制,一定程度上方便了使用,但也有一些问题,有一定几率会OOM,加载网络图片不够快等。
universal image loader自己使用的一些感受的更多相关文章
- 【译】UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解
在之前的文章,我们重点讲了Android-Universal-Image-Loader的三个主要组件,现在我们终于可以开始使用它了. Android-Universal-Image-Loader有四个 ...
- Android中Universal Image Loader开源框架的简单使用
UIL (Universal Image Loader)aims to provide a powerful, flexible and highly customizable instrument ...
- universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法
在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使 ...
- 【Android应用开发】 Universal Image Loader ( 使用简介 | 示例代码解析 )
作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50824912 相关地址介绍 : -- Universal I ...
- android universal image loader 缓冲原理详解
1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的.可高度定制的图片缓存,本文简称为UIL ...
- 开源项目Universal Image Loader for Android 说明文档 (1) 简介
When developing applications for Android, one often facesthe problem of displaying some graphical ...
- 开源项目Universal Image Loader for Android 说明文档 (1) 简单介绍
When developing applications for Android, one often facesthe problem of displaying some graphical ...
- 【译】UNIVERSAL IMAGE LOADER.PART 2---ImageLoaderConfiguration详解
ImageLoader类中包含了所有操作.他是一个单例,为了获取它的一个单一实例,你需要调用getInstance()方法.在使用ImageLoader来显示图片之前,你需要初始化它的配置-Image ...
- 翻译:Universal Image Loader
本文转载于:http://blog.csdn.net/tianxiangshan/article/details/9399183 All manipulations are held by the I ...
随机推荐
- CentOS 6 中安装Node.js 4.0 版本或以上
如果想在CentOS 6 中安装Node.js >4.0,如果通过以往的方式安装: wget http://nodejs.org/dist/v4.0.0/node-v4.0.0.tar.gz t ...
- <Oracle Database>数据字典
数据字典 数据字典是由Oracle服务器创建和维护的一组只读的系统表,它存放了有关数据库和数据库对象的信息,Oracle服务器依赖这些信息来管理和维护Oracle数据库. 数据字典分为两大类:一种是基 ...
- Json格式的字符串转换为正常显示的日期格式
//返回自定义格式日期: 2015-07-17 13:53:37function ChangeDateFormat(jsondate) { jsondate = jsondate.replace(&q ...
- 最新Ubuntu10.10 更新源
Ubuntu10.10这个版本真的很老了,官方N多年前早已不再支持更新软件源了. 目前可用的有中科大镜像更新源. 中科大Ubuntu 10.10源列表: deb http://mirrors.ustc ...
- uva-439
题意:骑士在一个8*8的棋盘上移动,1-8代表行号,a-h代表列号,给出骑士的初始位置和目的位置,求骑士最少的移动步数:题目隐含一层意思(骑士移动规则是中国象棋的“马”的走法) 输入:一串字符串,包含 ...
- mono 开发
引用 segmentfault.com/a/1190000002449629 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus me15000 179 ...
- C2第十次解题报告
看过题解后如果觉得还算有用,请帮忙加点我所在团队博客访问量 http://www.cnblogs.com/newbe/ http://www.cnblogs.com/ne走迷宫wbe/p/406983 ...
- day9---paramiko ssh ftp
安装 paramiko模块 win下: 进入到\Python35\Scripts> 执行:pip install paramiko Linux: 先升级下pip : pip3.5 install ...
- 去掉tableview cell的左边间隙问题
http://www.jianshu.com/p/ba32f45222e0 简书上面的一篇文章.
- 用canvas制作酷炫射击游戏--part2
今天这一部分主要讲游戏的实现原理与游戏循环的代码实现. 先说原理,大家都看过动画吧.在我看来,游戏就是玩家能人为控制动画剧情发展方向的动画.所以,我们的游戏引擎其实说白了就是个动画引擎再加上鼠标事件. ...