Xutils3.0使用详解

xUtils介绍:

xUtils是前两年很火的开发框架,去年作者进行了升级目前(2016年6月1日)版本是:org.xutils:xutils:3.3.34。之前的稳定版本是:com.jiechic.library:xUtils:2.6.14,随着Android版本的升级,HttpClient等联网框架在AndroidApi23中移除了,xUtils2.6.14部分网络请求基于HttpClient,所以在2015年末的时候xUtils作者对xUtils进行了比较大的改动,在此我们一起学习xUtils3.0的基本使用。

xUtils3.0结构:

x代表 image、http、view(注解,类似findViewById)、db,再加上Uitls表示工具类,xUtils为我们进行了封装,方便我们获取网络图片,获取网络数据,查找控件,进行数据操作。

xUtils3.0使用:

一:添加依赖 compile ‘org.xutils:xutils:3.3.34’ 
进入project structure —–>选中modules的app—–>点击绿色加号——>点击Library Dependency—–>输入关键字:xutils进行查找—–>查到两个结果—–>选择最新的进行添加就可以了

这里写图片描述

二:初始化在全局的Application进行

public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
//        xUtils3.0初始化
        x.Ext.init(this);
//        测试时开启debug模式,发布程序时要关掉,不然影响性能
        x.Ext.setDebug(true);
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三:使用Image

  1. 最简单的方式:x.image().bind(mImageView, url);见名知义
  2. 添加一个参数:x.image().bind(mImageView,assets_url,options)参数options用于设置图片


// 创建ImageOptions.Builder 
ImageOptions.Builder builder = new ImageOptions.Builder(); 
int width = DensityUtil.dip2px(200); 
int height = DensityUtil.dip2px(200); 
builder.setSize(width, height);//设置宽高 
builder.setAutoRotate(true);//设置自动旋转 
builder.setCircular(true);//设置圆形 
builder.setConfig(Bitmap.Config.RGB_565);//设置图片格式 
builder.setFadeIn(true);//设置淡入 
builder.setFailureDrawableId(R.mipmap.ic_launcher);//设置图片加载失败时显示图片 
builder.setCrop(true);//设置允许裁剪 
builder.setImageScaleType(ImageView.ScaleType.CENTER);//设置图片显示格式 
builder.setUseMemCache(true);//设置允许内存缓存 
builder.setIgnoreGif(false);//设置允许gif格式图片 
// Builder创建options 
ImageOptions options = builder.build(); 
String assets_url = "assets://test.gif"; 
// 加载了一张gif图片 
x.image().bind(mImageView,assets_url,options); 

3、 加载本地文件图片:loadFile(String path, ImageOptions options, CacheCallback callback),这个方法亦可以加载网络图片,回调中两个方法:onCache(这个是获取缓存数据数据的回掉,如果有缓存数据,就不进行联网请求了);onSuccess方式是进行联网请求或者直接从本地获取图片的回调 
!!!如果查找本地文件,不会存入缓存,因此每次这种情况下缓存文件是空的

String url = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 
.getAbsolutePath() +File.separator+”p14.jpg”; 
x.image().loadFile(URL, options, new Callback.CacheCallback() { 
@Override 
public boolean onCache(File result) {// 
if (result != null) { 
Log.d(“flag”,”———->onCache”); 
x.image().bind(mImageView, result.getAbsolutePath(), options); 

return true; 

@Override 
public void onSuccess(File result) { 
if (result != null) { 
Log.d(“flag”,”———->onSuccess”); 
x.image().bind(mImageView, result.getAbsolutePath(), options); 

} @Override 
public void onError(Throwable ex, boolean isOnCallback) { 

@Override 
public void onCancelled(CancelledException cex) { 

@Override 
public void onFinished() { 

});

xUtils其他使用请参考下一篇文章: 
http://blog.youkuaiyun.com/Soft_Po/article/details/51590420

目前xUtils主要有四大模块: DbUtils模块: android中的orm框架,一行代码就可以进行增删改查; 支持事务,默认关闭; 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名); 支持绑定外键,保存实体时外键关联实体自动保存或更新; 自动加载外键关联实体,支持延时加载; 支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。 ViewUtils模块: android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定; 新的事件绑定方式,使用混淆工具混淆后仍可正常工作; 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。 HttpUtils模块: 支持同步,异步方式的请求; 支持大文件上传,上传大文件不会oom; 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求; 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件; 返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。 BitmapUtils模块: 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象; 支持加载网络图片和本地图片; 内存管理使用lru算法,更好的管理bitmap内存; 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等... 使用xUtils快速开发框架需要有以下权限: 混淆时注意事项: 添加Android默认混淆配置${sdk.dir}/tools/proguard/proguard-android.txt 不要混淆xUtils中的注解类型,添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; } 对使用DbUtils模块持久化的实体类不要混淆,或者注解所有表和列名称@Table(name="xxx"),@Id(column="xxx"),@Column(column="xxx"),@Foreign(column="xxx",foreign="xxx");收缩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值