• 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; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转

    使用前配置

    项目导入

    1. compile 'org.xutils:xutils:3.3.36'

    需要的权限

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

    初始化

    1. // 在application的onCreate中初始化
    2. @Override
    3. publicvoid onCreate(){
    4. super.onCreate();
    5. x.Ext.init(this);
    6. x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.
    7. ...
    8. }

    使用举例

    XUtils3一共有4大功能:注解模块网络模块图片加载模块数据库模块

    • viewUtils:用来代替findViewbyId,也可以用来给控件添加点击事件
    1. // 使用ViewUtils绑定控件
    2. @ViewInject(R.id.radioGroup)
    3. privateRadioGroup rg;
    4. @ViewInject(R.id.imgv)
    5. privateImageView imgv;
    6. @ViewInject(R.id.txtv1)
    7. privateTextView txtv;
    1. // ViewUtils支持绑定点击事件
    2. @OnClick(R.id.btn)
    3. publicvoid btnShow(View view){}
    1. /**
    2. * 1. 方法必须私有限定,
    3. * 2. 方法参数形式必须和type对应的Listener接口一致.
    4. * 3. 注解参数value支持数组: value={id1, id2, id3}
    5. * 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明.
    6. **/
    7. @Event(value = R.id.btn_test_baidu1,
    8. type =View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/)
    9. privatevoid onTestBaidu1Click(View view){
    10. ...
    11. }
    1. //记得在Activity的oncreate方法里面写上下面的代码:
    2. // 注入绑定事件
    3. ViewUtils.inject(this);
    • HttpUtils:访问网络
    1. //用来上传文件,下载文件
    2. HttpUtils hUtils =newHttpUtils(5*1000);
    3. hUtils.send(HttpMethod.GET,"http://blog.csdn.net/qq379454816",
    4. newRequestCallBack<String>(){
    5. @Override
    6. publicvoid onSuccess(ResponseInfo<String> responseInfo){
    7. txtv.setText(responseInfo.result);
    8. }
    9. @Override
    10. publicvoid onFailure(HttpException error,String msg){
    11. txtv.setText(error.getMessage()+","+ msg);
    12. }
    13. });
    1. //HttpUtlis的使用
    2. @Event(value = R.id.btn_test_baidu2)
    3. privatevoid onTestBaidu2Click(View view){
    4. RequestParamsparams=newRequestParams("https://www.baidu.com/s");
    5. params.setSslSocketFactory(...);// 设置ssl
    6. params.addQueryStringParameter("wd","xUtils");
    7. x.http().get(params,newCallback.CommonCallback<String>(){
    8. @Override
    9. publicvoid onSuccess(String result){
    10. Toast.makeText(x.app(), result,Toast.LENGTH_LONG).show();
    11. }
    12. @Override
    13. publicvoid onError(Throwable ex,boolean isOnCallback){
    14. Toast.makeText(x.app(), ex.getMessage(),Toast.LENGTH_LONG).show();
    15. }
    16. @Override
    17. publicvoid onCancelled(CancelledException cex){
    18. Toast.makeText(x.app(),"cancelled",Toast.LENGTH_LONG).show();
    19. }
    20. @Override
    21. publicvoid onFinished(){
    22. }
    23. });
    24. }
    • DbUtils使用数据库
    1. //先建一个类,用来生成数据库中的表
    2. @Table(name ="info")
    3. publicclassStudentInfo{
    4. @Column(name ="id", isId =true)
    5. privateint id;
    6. @Column(name ="name")
    7. privateString name;
    8. @Column(name ="age")
    9. privateint age;
    10. publicint getId(){
    11. return id;
    12. }
    13. publicvoid setId(int id){
    14. this.id = id;
    15. }
    16. publicString getName(){
    17. return name;
    18. }
    19. publicvoid setName(String name){
    20. this.name = name;
    21. }
    22. publicint getAge(){
    23. return age;
    24. }
    25. publicvoid setAge(int age){
    26. this.age = age;
    27. }
    28. }
    1. //使用DbUtils
    2. DbManager.DaoConfig daoConfig =newDaoConfig()
    3. // 数据库的名字
    4. .setDbName("SudentInfo")
    5. // 保存到指定路径
    6. // .setDbDir(new
    7. // File(Environment.getExternalStorageDirectory().getAbsolutePath()))
    8. // 数据库的版本号
    9. .setDbVersion(1)
    10. // 数据库版本更新监听
    11. .setDbUpgradeListener(newDbUpgradeListener(){
    12. @Override
    13. publicvoid onUpgrade(DbManager arg0,int arg1,int arg2){
    14. LogUtil.e("数据库版本更新了!");
    15. }
    16. });
    17. DbManager manager = x.getDb(daoConfig);
    18. try{
    19. //创建对象,用来生成表
    20. StudentInfo info =newStudentInfo();
    21. info.setAge(16);
    22. info.setName("小花");
    23. //创建表
    24. manager.saveOrUpdate(info);
    25. }catch(DbException e){
    26. e.printStackTrace();
    27. }
    1. //dBUtils:用来操作数据库
    2. //创建数据库
    3. DbUtils dUtils =DbUtils.create(MainActivity.this,"Student");
    4. try{
    5. //创建表,表名为包名_StudentInfo
    6. dUtils.createTableIfNotExist(StudentInfo.class);
    7. }catch(DbException e){
    8. e.printStackTrace();
    9. }
    • BitmapUtils绑定图片
    1. // 设置加载图片的参数
    2. ImageOptions imageOptions =newImageOptions.Builder()
    3. // 是否忽略GIF格式的图片
    4. .setIgnoreGif(false)
    5. // 图片缩放模式
    6. .setImageScaleType(ScaleType.CENTER_CROP)
    7. // 下载中显示的图片
    8. .setLoadingDrawableId(R.drawable.ic_launcher)
    9. // 下载失败显示的图片
    10. .setFailureDrawableId(R.drawable.ic_launcher)
    11. // 得到ImageOptions对象
    12. .build();
    13. x.image().bind(imageView, url, imageOptions);
    14. // assets file
    15. x.image().bind(imageView,"assets://test.gif", imageOptions);
    16. // local file
    17. x.image().bind(imageView,newFile("/sdcard/test.gif").toURI().toString(), imageOptions);
    18. x.image().bind(imageView,"/sdcard/test.gif", imageOptions);
    19. x.image().bind(imageView,"file:///sdcard/test.gif", imageOptions);
    20. x.image().bind(imageView,"file:/sdcard/test.gif", imageOptions);
    21. //带回调
    22. x.image().bind(imageView, url, imageOptions,newCallback.CommonCallback<Drawable>(){...});
    23. x.image().loadDrawable(url, imageOptions,newCallback.CommonCallback<Drawable>(){...});
    24. x.image().loadFile(url, imageOptions,newCallback.CommonCallback<File>(){...});
    1. //加载ImageView的图片资源,可以加载本地、网络
    2. BitmapUtils bUtils =newBitmapUtils(this); bUtils.display(imageView,"http://image.tianjimedia.com/uploadImages/2013/221/JGR58NXB5V62.jpg");
    • log的使用
    1. //设置是否允许输出对应级别的,false为不输出
    2. LogUtils.allowE=false;
    3. //以error的形式输出日志
    4. LogUtils.e("ViewUtils调用成功!");





  • 相关阅读:
    后台返回null iOS
    iOS代码规范
    没落的公司 该何去何从
    定位框一闪而过 iOS Swift
    根据appid跳到App Store某个APP的详情页
    Analyze 静态分析内存泄漏代码优化 instrument之Xcode
    bugly手动上传符号表和自动上传符号表
    __null_unspecified属性关键字解决内存泄漏
    栅栏函数dispatch_barrier_sync/async
    cell左滑加删除置顶功能 iOS
  • 原文地址:https://www.cnblogs.com/wisemen/p/5836789.html
Copyright © 2020-2023  润新知