2024年4月4日发(作者:)
Xutils是前两年很火的一个三方库(githup地址),是一个工具类,分为4个模块:
DbUtils、HttpUtils、ViewUtils、BitmapUtils,还有一个非常使用功能就是LogUtils,
可以用来输出Log日志。这个第三方库已经很久没有更新了,对最新的6.0系统支持也不
是很好,所以现在出了一个新的Xutils3(githup地址),今天就来看看新的Xutils3有什么
改变。
我们先来看看Xutils的4个模块的使用:
使用记得加上权限:
android:name="_EXTERNAL_STORAGE" /> dBUtils: 用来操作数据库 //创建数据库 DbUtils dUtils = (, "Student"); try { //创建表,表名为包名_StudentInfo TableIfNotExist(); } catch (DbException e) { tackTrace(); } BitmapUtils: 用来加载ImageView的图片资源,可以加载本地、网络 BitmapUtils bUtils = new BitmapUtils(this); y(imgv,"/uploadImages/2013/221/J "); viewUtils: 可以用来代替findViewbyId,也可以用来给控件添加点击事件 // 使用ViewUtils绑定控件 @ViewInject(roup) private RadioGroup rg; @ViewInject() private ImageView imgv; @ViewInject(1) private TextView txtv; // ViewUtils支持绑定点击事件 @OnClick() public void btnShow(View view) { 记得在Activity的oncreate方法里面写上下面的代码: // 注入绑定事件 (this); HttpUtils: 用来上传文件,下载文件 HttpUtils hUtils = new HttpUtils(5 * 1000); (, "/qq379454816", new RequestCallBack @Override public void onSuccess(ResponseInfo t(); } @Override public void onFailure(HttpException error, String msg) { t(sage() + "," + msg); } }); 最后来演示一个LogUtils的使用: //设置是否允许输出对应级别的,false为不输出 =false; //以error的形式输出日志 LogUtils.e("ViewUtils调用成功!"); ok,就简单地介绍一下其使用,4个主要模块使用还是有一定规律的,除了DbUtils 使用create创建对象外其余的3个模块都是使用new创建对象。下面来看下Xutils3: • xUtils3变化较多所以建立了新的项目不在旧版(/wyouflf/xUtils)上继续 维护, 相对于旧版本: 1. HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的 断点续传策略. 2. 支持标准的Cookie策略, 区分domain, 3. 事件注解去除不常用的功能, 提高性能. 4. 数据库api简化提高性能, 达到和greenDao一致的性能. 5. 图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转... 以上是官方的说明,下面来看具体使用。 Xutils3的使用方式和Xutils有很大的改变,所以请新建一个工程,按照下面的步骤操 作: 1、下载类库(类库下载),将下载文件解压,里面有一个jar包和一个文件夹,都复制 到lib目录下。 2、添加权限:网络访问权限和SD卡写入权限,这个和Xutils是一样的 3、然后新建一个Application类,在里面对Xutils3做初始化工作,代码如下: @Override public void onCreate() { te(); // 初始化 (this); // 设置是否输出debug ug(true); } 以上弄完就可以进入使用阶段了。 xutils3和Xutils使用方式有一些区别,以前是使用new得到各模块的对象,现在使 用:x.模块名()得到对象,回调接口也使用统一的一个,回调接口支持泛型。 BitMapUtils的使用: // 设置加载图片的参数 ImageOptions options = new r() // 是否忽略GIF格式的图片 .setIgnoreGif(false) // 图片缩放模式 .setImageScaleType(_CROP) // 下载中显示的图片 .setLoadingDrawableId(_launcher) // 下载失败显示的图片 .setFailureDrawableId(_launcher) // 得到ImageOptions对象 .build(); // 加载图片 ().bind(imgv, imagUrl, options, new CommonCallback @Override public void onSuccess(Drawable arg0) { LogUtil.e("下载成功"); } @Override public void onFinished() { LogUtil.e("下载完成"); } @Override public void onError(Throwable arg0, boolean arg1) { LogUtil.e("下载出错," + sage()); } @Override public void onCancelled(CancelledException arg0) { LogUtil.e("下载取消"); } }); // 加载本地图片 // ().bind(imgv, "assets://", options); // ().bind(iv_big_img, new // File("/sdcard/").toURI().toString(), imageOptions); // ().bind(iv_big_img, "/sdcard/", imageOptions); // ().bind(iv_big_img, "file:///sdcard/", imageOptions); // ().bind(iv_big_img, "file:/sdcard/", imageOptions); HttpUtlis的使用: // 请求参数 RequestParams params = new RequestParams(""); ().get(params, new CommonCallback @Override public void onCancelled(CancelledException arg0) { } @Override public void onError(Throwable arg0, boolean arg1) { } @Override public void onFinished() { } @Override public void onSuccess(String arg0) { // 成功下载,显示到txtv上面 t(arg0); } }); viewUtils的使用基本没变,只是绑定点击事件的时候有些出入: // 使用ViewUtils绑定控件 @ViewInject() private TextView txtv; @ViewInject() private ImageView imgv; 绑定事件: /** * 使用BitmapUtils显示图片 * * 使用ViewUtils设置按钮的点击事件,方法必须要私有化, 参数格式和type的参数 一致,为了混淆方便,方法名要以Event或者Click结尾 * type可以不写,默认是点击事件类型 */ @Event(value = , type = ) private void btnClick(View view) { 最后来演示DbUtils: 先建一个类,用来生成数据库中的表,这里新建一个StudentInfo类(注意里面的@标 签的使用,使用这些标签生成表的结构信息)内容如下: @Table(name = "info") public class StudentInfo { @Column(name = "id", isId = true) private int id; @Column(name = "name") private String name; @Column(name = "age") private int age; public int getId() { return id; } public void setId(int id) { = id; } public String getName() { return name; } public void setName(String name) { = name; } public int getAge() { return age; } public void setAge(int age) { = age; } } 然后看如何使用: fig daoConfig = new DaoConfig() // 数据库的名字 .setDbName("SudentInfo") // 保存到指定路径 // .setDbDir(new // File(ernalStorageDirectory().getAbsolutePath())) // 数据库的版本号 .setDbVersion(1) // 数据库版本更新监听 .setDbUpgradeListener(new DbUpgradeListener() { @Override public void onUpgrade(DbManager arg0, int arg1, int arg2) { LogUtil.e("数据库版本更新了!"); } }); DbManager manager = (daoConfig); try { //创建对象,用来生成表 StudentInfo info = new StudentInfo(); (16); e("小花"); //创建表 Update(info); } catch (DbException e) { tackTrace(); } ok,Xutils3的使用就简单的简绍了一下使用思路,其实知道了使用步骤,一个第三方 的库的使用还是很简单的


发布评论