zoukankan      html  css  js  c++  java
  • [android]__如何在studio中导入,使用开源的UI组件

    • 前言

    在编程开发中,我们对第三方的优质开源组件是十分依赖的,在很多时候,我们都会使用到他们.使用第三方开源组件能够给我们的编程开发带来很大的便利.今天以这篇文章记录关于在android项目中引用第三方开源ui组件的方法.

    其实在前面的学习中,我们基本已经接触到这个方面的知识了(在使用百度地图api开发gps定位apk时已经有所接触).


    • 关于两个bulid.gradle文件

    在引用之前,我们首先需要了解到两个文件.他们就是bulid.gradle配置文件.

    image.png

    这两个文件在很多初学者,容易混淆,也不太清楚其作用.

    其中project的bulid.gradle文件,相当于整个项目的gradle配置文件,其中可以设置获取一些网络依赖资源的路径,也可以配置一些gradle插件的相关配置.

    image.png

    在初学的时候,我们不会太多的接触和使用,修改到这个gradle文件,我们通常需要配置和修改的是app下的build.gradle文件.

    而app下的bulid.gradle文件就是管理当前app的相关配置的,在很多时候,我们都会修改,或添加其中的一些配置.

    其中的信息是这样的:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "cn.gemuxiaoshe.gradletext"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:28.0.0'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
    

    我们可以明显的观察到,android代码块中是该app的一些信息和描述,并且其中还可以嵌套很多其他的代码块,虽然我们暂时不知道具体含义.

    再下面就是一个与android并列的代码块,dependencies(依赖).那么说明这里就是添加配置一些当前app所需要依赖的jar包之类的,我们可以观察到 使用''括起来的就是一些文件的路径.那么其前面的 implementation应该就是引入,导入或者依赖的意思吧.我们还可以看到起有各种不同的写法.那么我们应该就知道了,这里就是导入开源组件的地方,


    • 直接通过配置gradle依赖路径引用开源ui组件

    一般的开源组件,其实都会有相应的说明,和配置语句.我们可以前往github开源仓库试试看:

    打开github,随便搜索一个警告的提示框dialog组件,并选择一个star较多的:

    2019-4-21-01.gif

    我们可以找到其提供的gradle配置文件:

    image.png

    我们只需要将上面的代码写入到app下的bulid.gradle文件中,就可以使用该开源UI组件了

    image.png

    而其中的

    reposltories{
    mavenCentral()
    }
    

    其实可以不配置,因为我们默认的依赖资源下载路径就是jcenter,而jcenter其中的资源其实要比maven中央仓库还要详细的.
    配置好gradle文件后不要忘记点击右上角的提示,同步解析.

    当然,在当前最新版的studio,会提示以下错误:

    image.png

    这是因为在最新版,关键字已经更换为implementation了.我们将它替换掉compile再次同步就可以了.


    当然在解决上面的问题后,我们在同步gradle时还可能报下面这样的错误:

    image.png

    其大致意思应该就是我们的配置xml文件AndroidManifest.xml与开源资源组件的有冲突,
    其解决方案,其实在错误信息中已经有提出,在xml文件中添加:replace="android:android:icon语句.再重新同步,应该就没有问题了.


    我们将开源UI组件引用到项目后,接下来我们参考其说明文档在studio中试试看效果吧:

     SweetAlertDialog pDialog = new SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE);
            pDialog.getProgressHelper().setBarColor(Color.parseColor("#A5DC86"));
            pDialog.setTitleText("Loading");
            pDialog.setCancelable(false);
            pDialog.show();
    

    直接在mainActivity中新建一个SweetAlertDialog.

    好吧,编译出错报错:

    java.lang.RuntimeException: Unknown animation name: cn.pedant.SweetAlert.Rotate3dAnimation error:null
    
    
    • 使用导入jar包的方式来引用开源UI组件

    那么我们就不通过这种方式引用它.我们直接使用jar包的方式引用:

    首先,我们到maven中央仓库去查找该开源组件:

    image.png

    下载该组件的aar文件,然后复制到项目的lib目录下,通过file中project Structure视窗中的Dependencies栏将libs下的aar文件引用到项目中:

    image.png

    ok后,studio会自动同步gradle文件,我们也可以在app下的gradle文件中看到引入语句:

    image.png

    如此,就导入引用完成,我们在MainActivity中测试一下,可以使用其开源组件:

    image.png

    image.png


    我们再写几个Button来测试下该开源组件的几个不同的组件:

    2019-4-22-01.gif


    更新时间:
    2019-4-22
    3:59

  • 相关阅读:
    进化中的技术小白
    mybatis的学习5______使用注解实现CURD
    mybatis的学习4______分页的实现
    Mybatis的学习3______使用log4j打印日志信息
    mybatis的学习2_____配置文件的详解和代码的优化
    Java代码实现邮件的上传
    JavaWeb小作业 用户表单数据的获取
    Java的学习JSP____4
    Javaweb的学习session___3
    Javaweb的学习(servlet和request)___2
  • 原文地址:https://www.cnblogs.com/gemuxiaoshe/p/10748057.html
Copyright © 2011-2022 走看看