ImageView异步加载图片 ImageLoaderSample
- 授权协议: GPL
- 开发语言: Java
- 操作系统: Android
- 软件首页: https://github.com/wangjiegulu/ImageLoaderSample
- 软件文档: https://github.com/wangjiegulu/ImageLoaderSample
软件介绍
这个可以实现ImageView异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。
解决了:
1. listview加载oom问题
2. listview加载时卡顿的现象
3. listview加载时item中图片重复错位等情况
可以配置:
1. 设置加载图片的最大尺寸
2. 设置默认图片的显示
3. 设置图片位图模式
4. 设置内存缓存的最大值。
5. 文件缓存保存的目录
这个框架基本的代码是很久以前不知道哪里弄的,零零碎碎的,现在已经优化了很多,所以现在上传到github上共享。
讲讲使用方式吧:
首先使用前下载源码或者jar包(见github:https://github.com/wangjiegulu/ImageLoaderSample)
然后进行图片加载器(ImageLoader)的配置和初始化,推荐的方法如下:
新建MyApplication类,继承Application,在onCreate中增加如下代码:
/**
* Created with IntelliJ IDEA.
* Author: wangjie email:tiantian.china.2@gmail.com
* Date: 14-2-27
* Time: 上午11:25
*/
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
ImageLoader.init(getApplicationContext(),
new CacheConfig()
.setDefRequiredSize(600) // 设置默认的加载图片尺寸(表示宽高任一不超过该值,默认是70px)
.setDefaultResId(R.drawable.ic_launcher) // 设置显示的默认图片(默认是0,即空白图片)
.setBitmapConfig(Bitmap.Config.ARGB_8888) // 设置图片位图模式(默认是Bitmap.CacheConfig.ARGB_8888)
.setMemoryCachelimit(Runtime.getRuntime().maxMemory() / 3) // 设置图片内存缓存大小(默认是Runtime.getRuntime().maxMemory() / 4)
// .setFileCachePath(Environment.getExternalStorageDirectory().toString() + "/mycache") // 设置文件缓存保存目录
);
}
……
}然后再AndroidManifest.xml中添加:
......
到此,配置已经全部完成:
接下来,使用ImageLoader来加载图片:
holder.progress.setText("0%");
holder.progress.setVisibility(View.VISIBLE);
final ViewHolder vhr = holder;
ImageLoader.getInstances().displayImage(list.get(position), holder.image, new ImageLoader.OnImageLoaderListener() {
@Override
public void onProgressImageLoader(ImageView imageView, int currentSize, int totalSize) {
vhr.progress.setText(currentSize * 100 / totalSize + "%");
}
@Override
public void onFinishedImageLoader(ImageView imageView, Bitmap bitmap) {
vhr.progress.setVisibility(View.GONE);
}
});
或者:
ImageLoader.getInstances().displayImage(url, imageIv);
或者
ImageLoader.getInstances().displayImage(url, imageIv, 100);备注:
例子中,用到了一部分注解(与ImageLoader功能无关,但是可以简化代码的编写) 可以点下面连接进入:
github:https://github.com/wangjiegulu/androidInject
博客:
http://www.cnblogs.com/tiantianbyconan/p/3459139.html
http://www.cnblogs.com/tiantianbyconan/p/3540427.html
Persuasive Technology
B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95
Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!
