XUtils3框架

XUtils3框架

框架简介

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

使用前配置

项目导入

compile 'org.xutils:xutils:3.3.36'

需要的权限

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

初始化

// 在application的onCreate中初始化
@Override
public void onCreate() {
    super.onCreate();
    x.Ext.init(this);
    x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
    ...
}

使用举例

XUtils3一共有4大功能:注解模块网络模块图片加载模块数据库模块
  • 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) {}
/**
 * 1. 方法必须私有限定,
 * 2. 方法参数形式必须和type对应的Listener接口一致.
 * 3. 注解参数value支持数组: value={id1, id2, id3}
 * 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明.
 **/
@Event(value = R.id.btn_test_baidu1,
        type = View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/)
private void onTestBaidu1Click(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);
                        }
                    });
//HttpUtlis的使用
@Event(value = R.id.btn_test_baidu2)
private void onTestBaidu2Click(View view) {
    RequestParams params = new RequestParams("https://www.baidu.com/s");
    params.setSslSocketFactory(...); // 设置ssl
    params.addQueryStringParameter("wd", "xUtils");
    x.http().get(params, new Callback.CommonCallback<String>() {
        @Override
        public void onSuccess(String result) {
            Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show();
        }

        @Override
        public void onError(Throwable ex, boolean isOnCallback) {
            Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onCancelled(CancelledException cex) {
            Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onFinished() {

        }
    });
}
  • DbUtils使用数据库
//先建一个类,用来生成数据库中的表
@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;
    }
}
//使用DbUtils
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();
        }
//dBUtils:用来操作数据库
//创建数据库
            DbUtils dUtils = DbUtils.create(MainActivity.this, "Student");
            try {
                //创建表,表名为包名_StudentInfo
                dUtils.createTableIfNotExist(StudentInfo.class);
            } catch (DbException e) {
                e.printStackTrace();
            }
  • BitmapUtils绑定图片
// 设置加载图片的参数
        ImageOptions imageOptions = 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(imageView, url, imageOptions);
// assets file
x.image().bind(imageView, "assets://test.gif", imageOptions);
// local file
x.image().bind(imageView, new File("/sdcard/test.gif").toURI().toString(), imageOptions);
x.image().bind(imageView, "/sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);
x.image().bind(imageView, "file:/sdcard/test.gif", imageOptions);

//带回调
x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
x.image().loadFile(url, imageOptions, new Callback.CommonCallback<File>() {...});
//加载ImageView的图片资源,可以加载本地、网络
BitmapUtils bUtils = new BitmapUtils(this); bUtils.display(imageView,"http://image.tianjimedia.com/uploadImages/2013/221/JGR58NXB5V62.jpg");
  • log的使用
//设置是否允许输出对应级别的,false为不输出
    LogUtils.allowE=false;
    //以error的形式输出日志
    LogUtils.e("ViewUtils调用成功!");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值