美文网首页
RxTools的导入和使用

RxTools的导入和使用

作者: 番茄tomato | 来源:发表于2019-08-20 14:59 被阅读0次

    首先供上大神的github链接:
    https://github.com/Tamsiree/RxTool
    文档:https://tamsiree.com/TechnicalResearch/Android/RxTool/Wiki/RxTool-Wiki/

    强调一点:这个RxTool非常强大,功能非常多,能直接使用的同时,具有非常高的学习价值,跟着看每个功能每个模块是怎么实现的,将来你将会拥有自己的Tools

    RxTool是什么?以下是引用自github的简介:

    Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j压缩(支持分卷压缩与加密) | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | WebView的封装可播放视频 | 仿斗鱼滑动验证码 | Toast封装 | 震动 | GPS | Location定位 | 图片缩放 | Exif 图片添加地理位置信息(经纬度) | 蛛网等级 | 颜色选择器 | ArcGis | VTPK | 编译运行一下说不定会找到惊喜

    可以看到RxTool的功能极其多且杂,但是每个都非常实用,所以我在本篇中依次写出RxTool的用法代码实现demo。

    首先是导入:按照github给出的导入步骤即可,可能有的同学会报个错,检查一下将gradle中的minSdkVersion支持的最小SDK版本改为17(我自己就抱这个错了,原因是因为项目和第三方库最小支持版本不符(项目>库 就可以了))

    编译的时候还有一个问题提示没有找到CardView相关依赖,但是RxTool中一些自定义控件用到了CardView,所以手动添加:

        //RxTool中用到了CardView  手动导入
        implementation 'com.android.support:cardview-v7:28.0.0'
    

    现在是基本使用,我用的是MVP框架来做的,大同小异:
    要使用rxtool,首先要将其初始化

    //this是context
    RxTool.init(this);
    

    然后要使用,我举个简单的例子,比如我要打开相机的闪光灯:
    首先找到wiki文档中,打开闪光灯方法的位置:


    image.png

    然后,我们可以在代码中添加一个button的监听什么的:

    RxCameraTool.openFlashLight();
    

    这里是单例设计模式,直接调用相应的工具方法就可以做事情了。


    有些东西还是要踩过才懂:
    是这样的,我在项目中使用到了RXTool的RxUI中的ActivityWebView,问题来了,作者大大把ActivityWebView内部的URL给写死了,并且由于是gradle抓取的依赖包,所以这个文件是read-only只读,不能修改,一下是写死的:

        private void initData() {
            pbWebBase.setMax(100);//设置加载进度最大值
            //webPath = getIntent().getStringExtra("URL");
            webPath = RxConstants.URL_BAIDU_SEARCH;//加载的URL
    

    要想修改这个activity怎么办呢?
    方法1(推荐)
    自己新建一个Activity,仿照ActivityWebView完成 然后就自己可以用了,布局文件当然也是照着完成呀 (Ctrl+C,V 再修改一些细节和修改自己要改的地方 )
    以后遇到实在是需要修改第三方库的东西也可以这么做
    喜闻乐见 报错了:

    Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
    

    解决方法 https://www.jianshu.com/p/72d3b3cc2e48
    在module的gradle中:

    dependencies {
    ...
    //大多数app不需要引入multidex支持,首选解决办法一个是删除没有使用到的引入
        implementation 'com.android.support:multidex:1.0.3'
    }
    
        defaultConfig {
    ...
            multiDexEnabled true
    }
    

    方法2(究极不推荐)
    采用其他的导入方式,将第三方库整个导入:
    https://www.jianshu.com/p/feb3a03d1892
    按照以上方法可以导入RxUI,但同时也会导入基础库Rxkit,然而会报一个错,是gradle里边的(全部删除完),点击查看错误的地方,直接删除。然后记住,要取消掉之前gradle导入,现在可以直接修改ActivityWebView了

    相关文章

      网友评论

          本文标题:RxTools的导入和使用

          本文链接:https://www.haomeiwen.com/subject/ziousctx.html