• 前言

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

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


  • 关于两个bulid.gradle文件

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

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

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

在初学的时候,我们不会太多的接触和使用,修改到这个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较多的:

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

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

而其中的

reposltories{
mavenCentral()
}

其实可以不配置,因为我们默认的依赖资源下载路径就是jcenter,而jcenter其中的资源其实要比maven中央仓库还要详细的.

配置好gradle文件后不要忘记点击右上角的提示,同步解析.

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

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


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

其大致意思应该就是我们的配置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中央仓库去查找该开源组件:

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

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

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


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


更新时间:

2019-4-22

3:59

[android]__如何在studio中导入,使用开源的UI组件的更多相关文章

  1. Android如何使用so文件和Android studio中导入so

    Android中使用so文件: 做一个PDF阅读的功能,找到一个开源的库,mupdf.下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkErr ...

  2. Android Studio中导入第三方库

    之前开发Android都是使用的eclipse,近期因为和外国朋友Timothy一起开发一款应用,他是从WP平台刚切换使用Android的,使用的开发环境时Android Studio,为了便于项目的 ...

  3. Android studio中导入第三方类库

    常常在github上看到一些好用的框架,但是对于一个新手怎样在android studio上导入去总会遇到各种麻烦,索性来研究下第三方类库怎样在android studio上导入. 以我在github ...

  4. 【笔记】android sdk集成的eclipse中导入项目

    android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...

  5. 在android studio中导入github下载的工程

    1.从Github中下载工程压缩包,并将其解压到本地 2.修改文件 假设,解压后的文件目录如下: (1)修改配置文件  xx\build.gradle // Top-level build file ...

  6. Android Studio中导入v4,v7和recyclerview-v7包的方法

    概述 Android Studio中新建工程中会默认导入v7的包,即在gradle中默认配置了com.android.support:appcompat-v7:x.x.x的依赖.但是不会默认为我们配置 ...

  7. 如何在Android Studio中导入JNI生成的.so库

    由于在原来的ADT的Eclipse环境中,用ndk_build工具生成了相应的各个.so库文件之后,eclipse工具就会自动把这些库导入到apk中.而Android Studio目前为止(0.86版 ...

  8. Support Library官方教程(3)android studio中导入支援包

    Support Library Setup How you setup the Android Support Libraries in your development project depend ...

  9. Android Studio中导入Android项目StepbyStep

    想把在eclipse的项目导入Android studio,有两种方法,但是我喜欢的是不改变项目文件结构的方法,因为这样可以兼容eclipse. 第一步: 导入的项目不能运行,需要配置运行环境.And ...

随机推荐

  1. numpy最值

    >>> a = np.arange(9).reshape((3,3))>>> aarray([[0, 1, 2], [3, 4, 5], [6, 7, 8]])&g ...

  2. 初识STM32中的USMART组件

    今天看了usmart那部分的模块,感觉使我们stm32的学习变更加方便,你可以通过串口查看和检验你所注册过的函数. USMART配步骤1.将USMART包添加到工程中,头文件要包括path2.添加所需 ...

  3. 关于Visual Studio调试C/C++,JS,PHP,JAVA,Python等语言的方法

    我在开始接触vs code后,确实对它的高颜值和小巧灵活而着迷,但是有一个非常现实的问题,相对于vs来说,vscode是一个代码编辑器,而不是一个IDE,在代码编译运行上存在着极大的问题,尤其是开始编 ...

  4. 2019.03.28 bzoj3597: [Scoi2014]方伯伯运椰子(01分数规划)

    传送门 题意咕咕咕有点麻烦不想写 思路: 考虑加了多少一定要压缩多少,这样可以改造边. 于是可以通过分数规划+spfaspfaspfa解决. 代码: #include<bits/stdc++.h ...

  5. 使用sort对数组中的对象的某个属性进行排序

    var data=[ { code: "10004", grade: "5.6", planQuantity: 220, }, { code: "10 ...

  6. fortran语言调用fortran写的dll

    环境:vs2013+IVF 2011 有时候想把fortran写的常用的函数编译为DLL,以供不同的fortran exe调用,这时候应该怎样做呢?[参考 彭国伦老师 fortran95 程序设计 书 ...

  7. Note | Git

    目录 1. 出发 A. 安装 B. 设置机器身份 C. 创建版本(仓)库 repository D. 可管理文件 2. 基础操作 A. 添加文件至仓库 B. 修改文件并查看修改 C. 查看历史变动 D ...

  8. spring BeanWrapperImpl方便的嵌套属性(list)操作

    beans 包主要提供了接口和类用于处理java beans.     其中最主要的接口是BeanWrapper:     Spring 的中心接口,用于访问javabeans 的低层操作.默认实现为 ...

  9. Windows批处理命令学习中遇到的坑--持续更新中

    再次拾起windows批处理命令,下边将一些遇到的小问题写出来,希望可以帮到大家 1.set命令:set主要的作用是为变量赋值,类似于编程语言中的var i = Value:但是在使用的过程中一定要注 ...

  10. java解析json数据用到的jar包

    百度云连接: https://pan.baidu.com/s/1iuQCc7uBO5XtAsNn6hwCew