您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > XUtils使用教程
Xutils是前两年很火的一个三方库(githup地址),是一个工具类,分为4个模块:DbUtils、HttpUtils、ViewUtils、BitmapUtils,还有一个非常使用功能就是LogUtils,可以用来输出Log日志。这个第三方库已经很久没有更新了,对最新的6.0系统支持也不是很好,所以现在出了一个新的Xutils3(githup地址),今天就来看看新的Xutils3有什么改变。我们先来看看Xutils的4个模块的使用:使用记得加上权限:uses-permissionandroid:name=android.permission.WRITE_EXTERNAL_STORAGE/uses-permissionandroid:name=android.permission.INTERNET/dBUtils:用来操作数据库//创建数据库DbUtilsdUtils=DbUtils.create(MainActivity.this,Student);try{//创建表,表名为包名_StudentInfodUtils.createTableIfNotExist(StudentInfo.class);}catch(DbExceptione){e.printStackTrace();}BitmapUtils:用来加载ImageView的图片资源,可以加载本地、网络BitmapUtilsbUtils=newBitmapUtils(this);bUtils.display(imgv,);viewUtils:可以用来代替findViewbyId,也可以用来给控件添加点击事件//使用ViewUtils绑定控件@ViewInject(R.id.radioGroup)privateRadioGrouprg;@ViewInject(R.id.imgv)privateImageViewimgv;@ViewInject(R.id.txtv1)privateTextViewtxtv;//ViewUtils支持绑定点击事件@OnClick(R.id.btn)publicvoidbtnShow(Viewview){记得在Activity的oncreate方法里面写上下面的代码://注入绑定事件ViewUtils.inject(this);HttpUtils:用来上传文件,下载文件HttpUtilshUtils=newHttpUtils(5*1000);hUtils.send(HttpMethod.GET,(){@OverridepublicvoidonSuccess(ResponseInfoStringresponseInfo){txtv.setText(responseInfo.result);}@OverridepublicvoidonFailure(HttpExceptionerror,Stringmsg){txtv.setText(error.getMessage()+,+msg);}});最后来演示一个LogUtils的使用://设置是否允许输出对应级别的,false为不输出LogUtils.allowE=false;//以error的形式输出日志LogUtils.e(ViewUtils调用成功!);ok,就简单地介绍一下其使用,4个主要模块使用还是有一定规律的,除了DbUtils使用create创建对象外其余的3个模块都是使用new创建对象。下面来看下Xutils3:xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护,相对于旧版本:1.HTTP实现替换HttpClient为UrlConnection,自动解析回调泛型,更安全的断点续传策略.2.支持标准的Cookie策略,区分domain,path...3.事件注解去除不常用的功能,提高性能.4.数据库api简化提高性能,达到和greenDao一致的性能.5.图片绑定支持gif,webp;支持圆角,圆形,方形等裁剪,支持自动旋转...以上是官方的说明,下面来看具体使用。Xutils3的使用方式和Xutils有很大的改变,所以请新建一个工程,按照下面的步骤操作:1、下载类库(类库下载),将下载文件解压,里面有一个jar包和一个文件夹,都复制到lib目录下。2、添加权限:网络访问权限和SD卡写入权限,这个和Xutils是一样的3、然后新建一个Application类,在里面对Xutils3做初始化工作,代码如下:@OverridepublicvoidonCreate(){super.onCreate();//初始化x.Ext.init(this);//设置是否输出debugx.Ext.setDebug(true);}以上弄完就可以进入使用阶段了。xutils3和Xutils使用方式有一些区别,以前是使用new得到各模块的对象,现在使用:x.模块名()得到对象,回调接口也使用统一的一个,回调接口支持泛型。BitMapUtils的使用://设置加载图片的参数ImageOptionsoptions=newImageOptions.Builder()//是否忽略GIF格式的图片.setIgnoreGif(false)//图片缩放模式.setImageScaleType(ScaleType.CENTER_CROP)//下载中显示的图片.setLoadingDrawableId(R.drawable.ic_launcher)//下载失败显示的图片.setFailureDrawableId(R.drawable.ic_launcher)//得到ImageOptions对象.build();//加载图片x.image().bind(imgv,imagUrl,options,newCommonCallbackDrawable(){@OverridepublicvoidonSuccess(Drawablearg0){LogUtil.e(下载成功);}@OverridepublicvoidonFinished(){LogUtil.e(下载完成);}@OverridepublicvoidonError(Throwablearg0,booleanarg1){LogUtil.e(下载出错,+arg0.getMessage());}@OverridepublicvoidonCancelled(CancelledExceptionarg0){LogUtil.e(下载取消);}});//加载本地图片//x.image().bind(imgv,assets://test.gif,options);//x.image().bind(iv_big_img,new//File(/sdcard/test.gif).toURI().toString(),imageOptions);//x.image().bind(iv_big_img,/sdcard/test.gif,imageOptions);//x.image().bind(iv_big_img,file:///sdcard/test.gif,imageOptions);//x.image().bind(iv_big_img,file:/sdcard/test.gif,imageOptions);HttpUtlis的使用://请求参数RequestParamsparams=newRequestParams();x.http().get(params,newCommonCallbackString(){@OverridepublicvoidonCancelled(CancelledExceptionarg0){}@OverridepublicvoidonError(Throwablearg0,booleanarg1){}@OverridepublicvoidonFinished(){}@OverridepublicvoidonSuccess(Stringarg0){//成功下载,显示到txtv上面txtv.setText(arg0);}});viewUtils的使用基本没变,只是绑定点击事件的时候有些出入://使用ViewUtils绑定控件@ViewInject(R.id.txtv)privateTextViewtxtv;@ViewInject(R.id.imgv)privateImageViewimgv;绑定事件:/***使用BitmapUtils显示图片**使用ViewUtils设置按钮的点击事件,方法必须要私有化,参数格式和type的参数一致,为了混淆方便,方法名要以Event或者Click结尾*type可以不写,默认是点击事件类型*/@Event(value=R.id.btn,type=View.OnClickListener.class)privatevoidbtnClick(Viewview){最后来演示DbUtils:先建一个类,用来生成数据库中的表,这里新建一个StudentInfo类(注意里面的@标签的使用,使用这些标签生成表的结构信息)内容如下:@Table(name=info)publicclassStudentInfo{@Column(name=id,isId=true)privateintid;@Column(name=name)privateStringname;@Column(name=age)privateintage;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}然后看如何使用:DbManager.DaoConfigdaoConfig=newDaoConfig()//数据库的名字.setDbName(SudentInfo)//保存到指定路径//.setDbDir(new//File(Environment.getExternalStorageDirectory().getAbsolutePath()))//数据库的版本号.setDbVersion(1)//数据库版本更新监听.setDbUpgradeListener(newDbUpgradeListener(){@OverridepublicvoidonUpgrade(DbManagerarg0,intarg1,intarg2){LogUtil.e(数据库版本更新了!);}});DbManagermanager=x.getDb(daoConfig);try{//创建对象,用来生成表StudentInfoinfo=newStudentInfo();info.setAge(16);info.setName(小花);//创建表manager.saveOrUpdate(info);}catch(DbExceptione){e.printStackTrace();}ok,Xutils3的使用就简单的简绍了一下使用思路,其实知道了使用步骤,一个第三方的库的使用还是很简单的
本文标题:XUtils使用教程
链接地址:https://www.777doc.com/doc-2868258 .html