目前android应用研发进入了一种快速开发时代,由于敏捷研发体系的出现和快速市场效应的作用,逼得开发人员开发一款应用时要提高效率、甚至极速开发。所以老套的框架体系就不再适应这个环境,xutils就应运而生而且变得越来越火。通过使用xutils框架总结了一部分经验,再接下来的时间里会做以分享。
分享xutils主要封装了四大模块:DbUtils,ViewUtils,HttpUtils,BitmapUtils
其中BitmapUtils做了如下的改进:
1.支持加载网络图片和本地图片
2.加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时出现的图片错位;
3.内存管理使用了iru算法,更好的管理bitmap内存
4.可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等
所以通过xutils显示网上图片是非常简单的一件事
BitmapUtils bitmapUtils = new BitmapUtils(this);
bitmapUtils .display(imageView, url);
就可以显示网址为url的网络图片了
如果设置显示失败选项需要添加
bitmapUtils .configDefaultLoadingImage(R.drawable.icon_default);//默认背景图片
bitmapUtils .configDefaultLoadFailedImage(R.drawable.icon_fail);//加载失败图片
bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565);//设置图片压缩类型
由于图片比较大,很多时候需要对图片显示的进度进行跟踪,所以加入回调接口
/**
* 显示图片回调
* @author zy
*/
public class MyBitmapLoadCallBack extends
DefaultBitmapLoadCallBack<ImageView> {
@Override
public void onLoading(ImageView container, String uri,
BitmapDisplayConfig config, long total, long current) {
showWaitDialog();//显示等待框
}
@Override
public void onLoadCompleted(ImageView container, String uri,
Bitmap bitmap, BitmapDisplayConfig config, BitmapLoadFrom from) {
// super.onLoadCompleted(container, uri, bitmap, config, from);
dismissWaitDialog();//去掉等待框
。。。。。。显示图片。。。。。。
}
@Override
public void onLoadFailed(ImageView container, String uri,
Drawable drawable) {
// TODO Auto-generated method stub
dismissWaitDialog();//去掉等待框
}
}
public void display(BitmapUtils bitmapUtils,ImageView imageview,String url){//外部接口函数
bitmapUtils.display(imageview, url,new MyBitmapLoadCallBack());
}