- 前言
在編程開發中,我們對第三方的優質開源組件是十分依賴的,在很多時候,我們都會使用到他們.使用第三方開源組件能夠給我們的編程開發帶來很大的便利.今天以這篇文章記錄關於在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