Xutils是前两年很火的一个三方库(githup地址),是一个工具类,分为4个模块:DbUtils、HttpUtils、ViewUtils、BitmapUtils,还有一个非常使用功能就是LogUtils,可以用来输出Log日志。这个第三方库已经很久没有更新了,对最新的6.0系统支持也不是很好,所以现在出了一个新的Xutils3(githup地址),今天就来看看新的Xutils3有什么改变。

我们先来看看Xutils的4个模块的使用:

使用记得加上权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" />

dBUtils:

用来操作数据库

//创建数据库DbUtils dUtils = DbUtils.create(MainActivity.this, "Student");try {//创建表,表名为包名_StudentInfodUtils.createTableIfNotExist(StudentInfo.class);} catch (DbException e) {e.printStackTrace();}

BitmapUtils:

用来加载ImageView的图片资源,可以加载本地、网络

 BitmapUtils bUtils = new BitmapUtils(this);bUtils.display(imgv,"http://image.tianjimedia.com/uploadImages/2013/221/JGR58NXB5V62.jpg");

viewUtils:

可以用来代替findViewbyId,也可以用来给控件添加点击事件

 // 使用ViewUtils绑定控件@ViewInject(R.id.radioGroup)private RadioGroup rg;@ViewInject(R.id.imgv)private ImageView imgv;@ViewInject(R.id.txtv1)private TextView txtv;
 // ViewUtils支持绑定点击事件@OnClick(R.id.btn)public void btnShow(View view) {

记得在Activity的oncreate方法里面写上下面的代码:

 // 注入绑定事件ViewUtils.inject(this);

HttpUtils:

用来上传文件,下载文件

 HttpUtils hUtils = new HttpUtils(5 * 1000);hUtils.send(HttpMethod.GET, "http://blog.csdn.net/qq379454816",new RequestCallBack<String>() {@Overridepublic void onSuccess(ResponseInfo<String> responseInfo) {txtv.setText(responseInfo.result);}@Overridepublic void onFailure(HttpException error, String msg) {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做初始化工作,代码如下:

 @Overridepublic void onCreate() {super.onCreate();// 初始化x.Ext.init(this);// 设置是否输出debugx.Ext.setDebug(true);}

以上弄完就可以进入使用阶段了。

xutils3和Xutils使用方式有一些区别,以前是使用new得到各模块的对象,现在使用:x.模块名()得到对象,回调接口也使用统一的一个,回调接口支持泛型。

BitMapUtils的使用:

// 设置加载图片的参数ImageOptions options = new ImageOptions.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, new CommonCallback<Drawable>() {@Overridepublic void onSuccess(Drawable arg0) {LogUtil.e("下载成功");}@Overridepublic void onFinished() {LogUtil.e("下载完成");}@Overridepublic void onError(Throwable arg0, boolean arg1) {LogUtil.e("下载出错," + arg0.getMessage());}@Overridepublic void onCancelled(CancelledException arg0) {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的使用:

 // 请求参数RequestParams params = new RequestParams("http://www.baidu.com");x.http().get(params, new CommonCallback<String>() {@Overridepublic void onCancelled(CancelledException arg0) {}@Overridepublic void onError(Throwable arg0, boolean arg1) {}@Overridepublic void onFinished() {}@Overridepublic void onSuccess(String arg0) {// 成功下载,显示到txtv上面txtv.setText(arg0);}});

viewUtils的使用基本没变,只是绑定点击事件的时候有些出入:

// 使用ViewUtils绑定控件@ViewInject(R.id.txtv)private TextView txtv;@ViewInject(R.id.imgv)private ImageView imgv;

绑定事件:

 /*** 使用BitmapUtils显示图片* * 使用ViewUtils设置按钮的点击事件,方法必须要私有化, 参数格式和type的参数一致,为了混淆方便,方法名要以Event或者Click结尾* type可以不写,默认是点击事件类型*/@Event(value = R.id.btn, type = View.OnClickListener.class)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) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}


然后看如何使用:

 DbManager.DaoConfig daoConfig = new DaoConfig()// 数据库的名字.setDbName("SudentInfo")// 保存到指定路径// .setDbDir(new// File(Environment.getExternalStorageDirectory().getAbsolutePath()))// 数据库的版本号.setDbVersion(1)// 数据库版本更新监听.setDbUpgradeListener(new DbUpgradeListener() {@Overridepublic void onUpgrade(DbManager arg0, int arg1, int arg2) {LogUtil.e("数据库版本更新了!");}});DbManager manager = x.getDb(daoConfig);try {//创建对象,用来生成表StudentInfo info = new StudentInfo();info.setAge(16);info.setName("小花");//创建表manager.saveOrUpdate(info);} catch (DbException e) {e.printStackTrace();}

扫描关注我的微信公众号:

ok,Xutils3的使用就简单的简绍了一下使用思路,其实知道了使用步骤,一个第三方的库的使用还是很简单的。附上我的demo:demo下载

实例效果图:

Xutils3的使用相关推荐

  1. 认真点,带你全面了解xutils3

    一.xUtils3简介 xUtils 包含了很多实用的android工具. xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解 ...

  2. android requestparams传入对象,Android xutils3上传文件使用示例

    Android xutils3工具上传文件非常方便,只需要传入File文件数据或一些其它参数给RequestParams对象即可完成,现在我们来开始使用xutils工具上传文件吧! 步骤一:需要在项目 ...

  3. android xutils数据库操作,XUtils3.0之本地数据库操作

    5](http://mvnrepository.com/)找到对应的版本 compile 'org.xutils:xutils:3.0' -->build project Paste_Image ...

  4. android xutil 数据库,Android XUtils3框架的基本使用方法(二)

    上一篇Android中XUtils3框架使用方法详解(一)文章,主要介绍了XUtil3的注解模块,网络模块,图片加载模块,今天给大家带来数据库模块的讲解,现在主流的ORM框架很多,比如OrmLite, ...

  5. 红橙Darren视频笔记 IOC注解框架 了解xUtils3与ButterKnife的原理

    1.什么是IOC IOC是Inversion of Control的缩写,直接翻译过来就叫依赖反转,看起来感觉不明觉厉,我觉得IOC就是一种解耦方式.比如原本我们在Activity中findviewb ...

  6. 手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源...

    代码已经托管到码云上,感兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 本次的网络资源地址使用的是时光网的api接口,地址如下: ...

  7. android xutils3 jar,android xutils3 Android基于开源项目xutils3实现下载

    上一次自己写了一个多线程断点续传下载的demo,过于麻烦,bug超多,所以我学习使用xutils来完成此功能. 先将xutils依赖搭建好(上一篇博客已经具体写了方法) 先看看效果图: 下面开始代码的 ...

  8. xUtils3.x的网络请求封装和请求https之单向SSL验证

    很久没写博客了, 自己定的路已经走歪,菜鸟的进阶之路上我只是走了一步,自从发了一篇博客之后在没有来过这里,已经有一年了吧,今天再次回到这里. 言归正传,今天要写的是xUtils3.x网络请求的封装和请 ...

  9. Android xUtils3使用

    一.xUtils简介: xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,官网:https://github.com/wyouflf/xUtils3 xUtils 包含 ...

  10. Xutils3——数据库

    前言 xUtils是一款快速开发android移动应用的框架,其包含了很多实用的android工具. 目前xUtils主要有四大模块: DbUtils模块ViewUtils模块HttpUtils模块B ...

最新文章

  1. 基于角色的权限设计(二)
  2. linux架构接口层教程,在LINUX平台上进行成功实现RIL层功能和框架层应用
  3. ==和equals()的区别
  4. 广域网安全建设的思路和部署
  5. 瓜子二手车CEO杨浩涌:创业要建立势能,瓜子的技术能力是护城河,“瓜子大脑”能预测成交概率...
  6. 笔记本移动位置,切换网络ip后,虚拟机的mac系统无法联网解决
  7. 电信计算机知识考试,2020中国电信考试试题——专业知识一
  8. linux内核启动过程5:启动用户空间
  9. WPF中显示任意目录的图片或其他资源文件
  10. Delphi中TStringList类常用属性方法详解
  11. tapestry5 中文文档
  12. python手写数字识别实验报告_ANN MNIST手写数字识别总结
  13. 为什么手机打电话的时候不能同时上网?
  14. 注册github账号指南
  15. java.lang.exceptionininitializererror_解决出现 java.lang.ExceptionInInitializerError错误问题
  16. 零基础入门,想问一下华为认证的网络工程师证好考吗?
  17. 什么是云原生中台业务架构?
  18. App中的微信支付和支付宝支付如何实现
  19. GBase基本查询操作
  20. htmltestrunner解决错误日志出界问题

热门文章

  1. 详细介绍C语言三大结构(顺序结构,分支结构,循环结构)
  2. 油画篇—颜色和空间关系直接影响作品效果~
  3. WIN10 快捷键 个人常用
  4. node爬虫最简单的demo
  5. 【数据分析】- 时间序列
  6. 【vue】时间戳、中国标准时间等格式转换时间样式(yyyy-MM-dd)
  7. Vue快速入门(附实战小项目:记事本、天气预报、音乐播放器)
  8. network system
  9. 陳三甲网络笔记:一个好的项目就如好女人,值得你珍惜
  10. 科奥斯扫地机器人怎么样_科沃斯和小米扫地机器人哪个好?有何区别