xUtils 3.0的使用

本文介绍了xUtils框架的基本使用方法,包括网络请求、图片加载等功能。提供了详细的代码示例,展示了如何进行HTTP请求及图片绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我也是刚刚接触xUtils,目前项目中用到了一些网络方面数据的加载与文件的下载,同事推荐了xUtils这个框架,过来研究一下,希望与同学们共同进步,如有错误请大家指出。

github上对xUtils 3.0是这样介绍的:

  • xUtils 包含了很多实用的android工具.
  • xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
  • xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?)
  • xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
    1. HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
    2. 支持标准的Cookie策略, 区分domain, path...
    3. 事件注解去除不常用的功能, 提高性能.
    4. 数据库api简化提高性能, 达到和greenDao一致的性能.
    5. 图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...

可见xUtils还是一套非常强大而又简洁的框架

一.xUtils的网络请求方面

首先我们要在Application中对xUtils进行初始化操作

 1 public class MyApplication extends Application {
 2 
 3     @Override
 4     public void onCreate() {
 5         super.onCreate();
 6         x.Ext.init(this);
 7         x.Ext.setDebug(true);
 8 
 9     }
10 }

在配置文件中添加权限

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

xUtils在访问网络成功的回调方法中已经做好了子线程与主线程的转换处理,所以在网络访问的成功或失败的回调方法中的代码是在主线程中运行的。

post方式请求网络:

    

RequestParams params = new RequestParams("http://www.baidu.com");
//添加参数
params.addBodyParameter("username","lisi"); Callback.Cancelable cancelable
= x.http().post(params, new Callback.CacheCallback<Object>() { @Override public boolean onCache(Object result) { return false; } @Override public void onSuccess(Object result) { Toast.makeText(MainActivity.this, "访问成功", Toast.LENGTH_SHORT).show(); Log.e("tag", result); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });

get方式请求网络:

get方式请求网络的方式大概与post的请求方式相同。

 1 Callback.Cancelable cancelable = x.http().get(params, new Callback.CacheCallback<String>() {
 2             @Override
 3             public boolean onCache(String result) {
 4                 return false;
 5             }
 6 
 7             @Override
 8             public void onSuccess(String result) {
 9                 hello.setText("成功");
10                 Toast.makeText(MainActivity.this, "访问成功", Toast.LENGTH_SHORT).show();
11                 Log.e("tag", result);
12             }
13 
14             @Override
15             public void onError(Throwable ex, boolean isOnCallback) {
16 
17             }
18 
19             @Override
20             public void onCancelled(CancelledException cex) {
21 
22             }
23 
24             @Override
25             public void onFinished() {
26 
27             }
28         });

二.xUtils加载网络图片的方法

  在xUtils 3.0的网络图片加载方法中有四个重载的方法,我们分别介绍一下这四种方法的使用(将网络地址的参数替换为本地图片文件路径,是可以加载SD卡中的图片的)

  可以直接添加两个参数来将网络图片地址与ImageView进行绑定

1 x.image().bind(imageView,"http://pic33.nipic.com/20131008/13661616_190558208000_2.jpg");

  

将图片网络地址与ImageView绑定只有,还可以再为ImageView设置一些属性选项

 1         ImageOptions imageOptions = new ImageOptions.Builder()
 2                 .setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))//图片大小
 3                 .setRadius(DensityUtil.dip2px(5))//ImageView圆角半径
 4                 .setCrop(true)// 如果ImageView的大小不是定义为wrap_content, 不要crop.
 5                 .setImageScaleType(ImageView.ScaleType.CENTER_CROP)
 6                 .setLoadingDrawableId(R.mipmap.ic_launcher)//加载中默认显示图片
 7                 .setFailureDrawableId(R.mipmap.ic_launcher)//加载失败后默认显示图片
 8                 .build();
 9 
10         x.image().bind(imageView,"http://pic33.nipic.com/20131008/13661616_190558208000_2.jpg",imageOptions);

  设置一个回调方法来知晓图片加载的成功或失败

 1 x.image().bind(imageView, "http://pic33.nipic.com/20131008/13661616_190558208000_2.jpg", new Callback.CommonCallback<Drawable>() {
 2             @Override
 3             public void onSuccess(Drawable result) {
 4                 hello.setText("成功");
 5                 Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
 6             }
 7 
 8             @Override
 9             public void onError(Throwable ex, boolean isOnCallback) {
10 
11             }
12 
13             @Override
14             public void onCancelled(CancelledException cex) {
15 
16             }
17 
18             @Override
19             public void onFinished() {
20 
21             }
22         });

  设置了ImageView的属性选项,也设置了成功或失败的回调

 x.image().bind(imageView,"http://pic33.nipic.com/20131008/13661616_190558208000_2.jpg",imageOptions,
        new Callback.CommonCallback<Drawable>() {
            @Override
            public void onSuccess(Drawable result) {

            }

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

            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }
        });

 

转载于:https://www.cnblogs.com/jsonzhang/p/5251650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值