Xutils3的使用
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 {
//创建表,表名为包名_StudentInfo
dUtils.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>() {
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
txtv.setText(responseInfo.result);
}
@Override
public 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)上继续维护, 相对于旧版本:
- HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
- 支持标准的Cookie策略, 区分domain, path...
- 事件注解去除不常用的功能, 提高性能.
- 数据库api简化提高性能, 达到和greenDao一致的性能.
- 图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...
以上是官方的说明,下面来看具体使用。
Xutils3的使用方式和Xutils有很大的改变,所以请新建一个工程,按照下面的步骤操作:
1、下载类库(类库下载),将下载文件解压,里面有一个jar包和一个文件夹,都复制到lib目录下。
2、添加权限:网络访问权限和SD卡写入权限,这个和Xutils是一样的
3、然后新建一个Application类,在里面对Xutils3做初始化工作,代码如下:
@Override
public void onCreate() {
super.onCreate();
// 初始化
x.Ext.init(this);
// 设置是否输出debug
x.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>() {
@Override
public void onSuccess(Drawable arg0) {
LogUtil.e("下载成功");
}
@Override
public void onFinished() {
LogUtil.e("下载完成");
}
@Override
public void onError(Throwable arg0, boolean arg1) {
LogUtil.e("下载出错," + arg0.getMessage());
}
@Override
public 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>() {
@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上面
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) {
/**
* 使用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() {
@Override
public 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();
}
下载xutils3jar包:http://download.csdn.net/detail/sinat_32804317/9551171
Xutils3的使用的更多相关文章
- xutils3
使用方法:https://github.com/wyouflf/xUtils3 http://blog.csdn.net/tyk9999tyk/article/details/53306035 .Ne ...
- XUtils3 的 环境搭建
XUtils3 的 环境搭建 环境搭建三部曲 ----------------------- 说明 : author 修雨轩陈 使用andorid Studio 已经创建了一个项目 并且自己需要使用 ...
- 用xutils3.0进行下载
写的例子比较简单,是用xutils3.0来进行下载项目更新 1.先通过网络请求,判断版本是否要更新 2.若要更新,则弹出一个弹窗,我用的是系统自带的Dialog,将下载的版本号及下载的内容提示展示出来 ...
- XUtils===XUtils3框架的基本使用方法
转载自:http://blog.csdn.NET/a1002450926/article/details/50341173 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的 ...
- xUtils3的简单介绍
xUtils3的简介 xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能. 1.xUtils包含了很多 ...
- xUtils3源码分析(一):view的绑定
概述 xUtils3是国人开发的一款功能丰富的Android快速开发框架,值得研究下.zip包下载:[ZIP]xutils主要分以下几个模块 视图绑定模块 网络请求模块 数据库模块 图片加载模块 我们 ...
- 安卓网络访问(xUtils3)
xUtils3是安卓网络访问的重要库,基本上的网络请求所涉及的内容都有集成.笔者将实现xUtils3的简单使用,包括简单GET和POST请求.文件上传.文件下载.图片显示. 其主要特性有以下几点: ① ...
- 使用开源项目xutils3完成下载
上一次自己写了一个多线程断点续传下载的demo,过于麻烦,bug超多,所以我学习使用xutils来完成此功能. 先将xutils依赖搭建好(上一篇博客已经具体写了方法) 先看看效果图: 下面开始代码的 ...
- Android xUtils3源代码解析之网络模块
本文已授权微信公众号<非著名程序猿>原创首发,转载请务必注明出处. xUtils3源代码解析系列 一. Android xUtils3源代码解析之网络模块 二. Android xUtil ...
随机推荐
- 触控发布《Cocos开发者平台白皮书》
Cocos 2014 开发者大会(秋季)组委会今天正式发布了<Cocos开发者平台白皮书>,GameRes游资网得到Cocos官方授权发布该白皮书电子版. 白皮书主要内容包括对行业的趋势解 ...
- Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)
Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...
- PHP导出数据库数据字典脚本
<?php /** * mysql数据字典在线生成 * @author change */ //配置数据库 $dbserver = "192.168.1.218:3306"; ...
- webservice接口的发布
使用xfire-client发布webservice接口: commons-codec-1.3.jar commons-httpclient-3.0.jar 在src 下创建META-INF/xfir ...
- 彻底解决cookie欺骗(有问题)
不要在公共场登陆 自己重要的用户名和密码: 不用的时候,[关闭浏览器],只点[退出],还是会有安全隐患.--没有绝对的安全由于http的无状态性,总不能每次访问页面都要输入用户名和密码,所以为了保持状 ...
- Makefile基础
1.规则 规则定义格式如下 目标 : 条件1 条件2 ... 命令1 命令2 ... 隐含规则和模式规则(略) 2.变量 Makefile变量像C的宏定义一样,代表一串字符,在取值的地方展开. 1)两 ...
- CentOS FireFox Flash Player
yum install *firefox* yum install flash-plugin
- jquery获取当前元素的坐标
jquery获取当前元素的坐标 1,获取对象 var obj = $("#id号"); 或 var obj = $(this); 实例中我获取的对象是弹出窗口按钮,这样创建的新窗 ...
- 批量更改数据库COLLATION
企业内部有很多系统是繁体的,由于各方面的原因,公司目前正在实行简体化,但各系统中又有数据间的交换,所以系统只能一个一个的更改,以防同时出现过多的问题.由于原先数据库只能存储繁体,而原先已存在的数据则可 ...
- Qt中的 Size Hints 和 Size Policies
sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...