Android 好用的自定義元件、框架

Kangkang發表於2021-04-06

記一些專案中遇到的自定義元件或框架 條目格式如下:

框架/元件       //框架或元件的Github地址,可以點選檢視
專案簡介:      //框架或元件的簡介
專案參考Blog:  //框架或元件可以參考如何使用的Blog
**專案使用**    //配置或新增框架、元件依賴
    implementation 'xx.xxx:xxx:x.x.x'
複製程式碼

框架

MVP框架 MVPArms

專案簡介:MVPArms 是一個整合了大量主流開源專案的 Android MVP 快速搭建框架, 其中包含 Dagger2、Retrofit、RxJava 以及 RxLifecycle、RxCache 等 Rx 系三方庫, 並且提供 UI 自適應方案, 本框架將它們結合起來, 並全部使用 Dagger2 管理並提供給開發者使用, 使用本框架開發您的專案, 就意味著您已經擁有一個 MVP + Dagger2 + Retrofit + RxJava 專案 專案參考Blog:MVPArms MVP快速整合框架 專案使用

    implementation 'me.jessyan:arms:2.5.2'

---------------------- 以下是擴充套件庫 ----------------------

    //想使用 Glide 請依賴 arms-imageloader-glide 擴充套件庫, 使用方式請看 #4.1
    implementation 'me.jessyan:arms-imageloader-glide:2.5.2' 

    //想使用 AndroidAutoLayout 請依賴 arms-autolayout 擴充套件庫, 使用方式請檢視 #4.2
    implementation 'me.jessyan:arms-autolayout:2.5.2' 
複製程式碼

greenDAO

專案簡介:greenDAO是一款開源的面向 Android 的輕便、快捷的 ORM 框架,將 Java 物件對映到SQLite資料庫中 專案參考Blog:一篇技術好文之Android資料庫 GreenDao的使用完全解析 專案使用

//匯入外掛
    // 在 Project的build.gradle 檔案中新增:
    buildscript {
        repositories {
            jcenter()
            mavenCentral() // add repository
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.2'
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
        }
    }
複製程式碼
//配置相關依賴
    // 在 Moudle:app的  build.gradle 檔案中新增:
    apply plugin: 'com.android.application'
    apply plugin: 'org.greenrobot.greendao' // apply plugin
 
    dependencies {
        implementation 'org.greenrobot:greendao:3.2.2' // add library
    }
複製程式碼
//配置資料庫相關資訊
    greendao {
        schemaVersion 1 //資料庫版本號
        daoPackage 'com.aserbao.aserbaosandroid.functions.database.greenDao.db'
        // 設定DaoMaster、DaoSession、Dao 包名
        targetGenDir 'src/main/java'//設定DaoMaster、DaoSession、Dao目錄,請注意,這裡路徑用/不要用.
        generateTests false //設定為true以自動生成單元測試。
        targetGenDirTests 'src/main/java' //應儲存生成的單元測試的基本目錄。預設為 src / androidTest / java。
    }
複製程式碼

ButterKnife

專案簡介:Field and method binding for Android views 專案參考Blog:1.Android Butterknife(黃油刀) 使用方法總結 2.ButterKnife的使用 專案使用

    //使用android support庫請依賴8.81版本
    impelementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    //使用androidx庫請依賴10.0.0版本
    impelementation 'com.jakewharton:butterknife:10.0.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
複製程式碼
    File -> Settings -> Plugins -> 搜尋ButterKnife,找到Android ButterKnife Zeleany進行安裝重啟AndroidStudio
複製程式碼

BaseRecyclerViewAdapterHelper

專案簡介:BRVAH:Powerful and flexible RecyclerAdapter 專案參考Blog:BRVAH官網 專案使用

    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47'
複製程式碼

gson

專案簡介:A Java serialization/deserialization library to convert Java Objects into JSON and back 專案參考Blog:GSON 專案使用

    implementation 'com.google.code.gson:gson:2.8.5'
複製程式碼

Glide

專案簡介:An image loading and caching library for Android focused on smooth scrolling 專案參考Blog:Glide使用總結 專案使用

    implementation 'com.github.bumptech.glide:glide:4.5.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'
複製程式碼

picasso

專案簡介:A powerful image downloading and caching library for Android 專案參考Blog:圖片載入框架-Picasso最詳細的使用指南 專案使用

    implementation 'com.squareup.picasso:picasso:2.5.2'
複製程式碼

vlayout

專案簡介:Project vlayout is a powerfull LayoutManager extension for RecyclerView, it provides a group of layouts for RecyclerView. Make it able to handle a complicate situation when grid, list and other layouts in the same recyclerview. 專案參考Blog:vlayout--讓你的多佈局不再頭疼 專案使用

    implementation ('com.alibaba.android:vlayout:1.2.8@aar') {
	    transitive = true
    }
複製程式碼

元件

RoundedImageView

專案簡介:A fast ImageView that supports rounded corners, ovals, and circles. 專案參考Blog:Android 第三方RoundedImageView設定各種圓形、方形頭像 專案使用

    implementation 'com.makeramen:roundedimageview:2.3.0'
複製程式碼

PictureSelector

專案簡介:Picture Selector Library for Android or 多圖片選擇器 專案參考Blog:Android 選擇圖片、上傳圖片之PictureSelector 專案使用

    implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.4.6'
複製程式碼

CardSwipeLayout

專案簡介:Use RecyclerView to achieve card swipe layout , like Tantan . (模仿探探卡片滑動效果的佈局) 專案參考Blog:CardSwipeLayout 專案使用

    implementation 'me.yuqirong:cardswipelayout:1.0.0'
複製程式碼

ViewPagerIndicator

專案簡介:一個簡單好用的ViewPagerIndicator,提供了六種型別,為viewpager新增酷炫效果,並且支援輪播圖( A simple, cool, customizable ViewPagerIndicator.show cool indicator for viewpager , it also good for viewpager as carousel ) 專案參考Blog:ViewPagerIndicator中文文件

專案使用

    //androidx
    implementation 'com.github.LinweiJ:ViewPagerIndicator:0.3.0'
複製程式碼
     //android support
    implementation 'com.github.LinweiJ:ViewPagerIndicator:0.2.0'
複製程式碼

BadgeView

專案簡介:支援自由定製外觀、拖拽消除的MaterialDesign風格Android BadgeView 專案參考Blog:android實現小圓點顯示未讀功能 專案使用

    implementation 'q.rorbin:badgeview:1.1.3'
複製程式碼

BaseDialog

專案簡介:Android BaseDialog(開發必備)動畫、載入進度、陰影、上下左右中 進入 專案參考Blog:Android BaseDialog(開發必備)動畫、載入進度、陰影 專案使用

    implementation 'com.github.AnJiaoDe:BaseDialog:V1.1.8'
複製程式碼

Android-PickerView

專案簡介:This is a picker view for android , support linkage effect, timepicker and optionspicker.(時間選擇器、省市區三級聯動) 專案參考Blog:PickerView--仿ios滾輪時間選擇、城市選擇效果 專案使用

    implementation 'com.contrarywind:Android-PickerView:4.1.9'
複製程式碼

PhotoView

專案簡介:Implementation of ImageView for Android that supports zooming, by various touch gestures. 專案參考Blog:Android UI Libs之PhotoView 專案使用

    implementation 'com.github.chrisbanes:PhotoView:latest.release.here'
複製程式碼

NumberProgressBar

專案簡介:A beautiful, slim Android ProgressBar. 專案參考Blog:Android UI Libs之NumberProgressBar 專案使用

  implementation 'com.daimajia.numberprogressbar:library:1.4@aar'
複製程式碼

NineOldAndroids

專案簡介:[DEPRECATED] Android library for using the Honeycomb animation API on all versions of the platform back to 1.0! 專案參考Blog:Android動畫進階—使用開源動畫庫nineoldandroids 專案使用

  implementation 'com.nineoldandroids:library:2.4.0'
複製程式碼

Paginate

專案簡介:Android library for creating simple pagination functionality (aka infinite scrolling) upon RecyclerView or AbsListView. 專案參考Blog:Paginate 專案使用

  implementation 'com.github.markomilos:paginate:0.5.1'
複製程式碼

timber

專案簡介:A logger with a small, extensible API which provides utility on top of Android's normal Log class. 專案參考Blog:1.Timber: Android日誌記錄 2.Android 日誌記錄雜談-Logger,Timber,logback-android 專案使用

  implementation 'com.jakewharton.timber:timber:4.5.1'
複製程式碼

logger

專案簡介:Simple, pretty and powerful logger for android 專案參考Blog:Android 日誌記錄雜談-Logger,Timber,logback-android 專案使用

  implementation 'com.orhanobut:logger:2.2.0'
複製程式碼

AndroidEventBus

專案簡介:[DEPRECATED] A lightweight eventbus library for android, simplifies communication between Activities, Fragments, Threads, Services, etc. 專案參考Blog:AndroidEventBus(事件匯流排)瞭解+實戰體驗 專案使用

  implementation 'org.simple:androideventbus:1.0.5.1'
複製程式碼

EventBus

專案簡介:Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality. 專案參考Blog:Android EventBus 的使用 專案使用

  implementation 'org.greenrobot:eventbus:3.1.1'
複製程式碼

相關文章