[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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM