2017 春季最酷的 30 個(gè) Android 庫(kù)

英文原文:The 30 Coolest Android Libraries from Spring 2017

這里是 30 個(gè)我最喜歡的在 2017 年 3 月前新出現(xiàn)的 Android 庫(kù)毙驯。其中一些并沒(méi)有用于實(shí)際產(chǎn)品,但你使用它們可能會(huì)得到很多的樂(lè)趣忿墅。我希望你們喜歡這些庫(kù)宇植。

下面的順序不代表排名:

1.Matisse

這是一個(gè)漂亮的本地圖片鹤耍、視頻選擇器乃秀。其主要功能有:
選擇包括JPEG、PNG煌恢、GIF格式的圖片和 MPEG骗卜、MP4 格式的視頻

支持自定義主題宠页,包括兩個(gè)內(nèi)置的主題

不同的圖片加載器

定義自定義過(guò)濾規(guī)則

在 Activities 和 Fragments 中操作良好

你可以在代碼庫(kù)的 wiki 中發(fā)現(xiàn)更多。

2. Spruce Android Animation Library (安卓動(dòng)畫(huà)庫(kù))

Spruce 是一個(gè)輕量級(jí)的動(dòng)畫(huà)庫(kù)寇仓,可以幫助排版屏幕上的動(dòng)畫(huà)举户。使用有很多不同的動(dòng)畫(huà)庫(kù)時(shí),開(kāi)發(fā)人員需要確保每個(gè)視圖都能夠在適當(dāng)?shù)臅r(shí)間活動(dòng)遍烦。 Spruce 可以幫助設(shè)計(jì)師獲得復(fù)雜的多視圖動(dòng)畫(huà)俭嘁,而不是讓開(kāi)發(fā)人員在原型階段就感到畏懼。


3. MaterialChipsInput

Chips 是 Material Design 中組件服猪,他們被描述為
小卻相對(duì)復(fù)雜的個(gè)體供填,比如聯(lián)系人。Chip 可以包含一些獨(dú)立的東西罢猪,比如照片近她、文本、條款膳帕、圖標(biāo)或者聯(lián)系人粘捎。
MaterialChipsInput 是在 Android 中實(shí)現(xiàn)的那個(gè)組件。這個(gè)庫(kù)提供了兩個(gè)視圖:ChipsInputChipView.

4. Grav

該庫(kù)允許基于點(diǎn)創(chuàng)建多個(gè)動(dòng)畫(huà)危彩。 你可以很容易地制作出光滑美麗的動(dòng)畫(huà)攒磨。 README 包含很多示例,因此您可以在此處查看恬砂。

5. Litho

Litho 不是庫(kù)咧纠,而是一個(gè)框架。它是一個(gè)非常強(qiáng)大的框架泻骤,以聲明的方式構(gòu)建 UI漆羔。它由 Facebook 的開(kāi)發(fā)者開(kāi)發(fā),所以就算你不想使用它狱掂,它仍然值得你去關(guān)注它的開(kāi)發(fā)過(guò)程演痒。



主要特性包括:
使用申明式 API 來(lái)定義 UI 組件。你只需要基于一套固定的輸入來(lái)描述布局就好趋惨,其它事情框架會(huì)搞定鸟顺。

異步布局:Litho 可以在不阻礙 UI 線(xiàn)程的情況下計(jì)算并對(duì) UI 布局。

扁平化視圖:Litho 使用 Yoga 來(lái)布局器虾,并自動(dòng)縮減 UI中 ViewGroups 的數(shù)量讯嫂。

細(xì)粒度回收:UI 中任何像 text 或 image 之類(lèi)的組件都能被回收再利用。

6. Adaptable Bottom Navigation(自適應(yīng)的底部導(dǎo)航)

不久前 Google 更新了 Material Design 的計(jì)劃兆沙,介紹了底部導(dǎo)航欄欧芽,這是個(gè)在應(yīng)用中讓 UI 跟隨內(nèi)容變化的不錯(cuò)的方式。設(shè)計(jì)支持庫(kù)(Design Support Library) 中也添加了實(shí)現(xiàn)葛圃。



用自適應(yīng)底層導(dǎo)航替換支持庫(kù)中的 BottomNavigationView 非常簡(jiǎn)單千扔。它以 ViewPager 和 TabLayout 的工作方式來(lái)實(shí)現(xiàn)。這里有來(lái)自開(kāi)發(fā)團(tuán)隊(duì)的一個(gè)簡(jiǎn)短說(shuō)明:
如前所述库正,使用 Android 支持庫(kù)中的底部導(dǎo)航視圖需要寫(xiě)很多無(wú)聊的的代碼切換視圖曲楚。因此,我們根據(jù) TabLayout 的 setupWithViewPater() 方法褥符,創(chuàng)建了獨(dú)有特色的 ViewSwapper 組件連接到底層導(dǎo)航視圖來(lái)以一個(gè)簡(jiǎn)單的方式對(duì)視圖的顯示進(jìn)行管理龙誊。
你可以在 Github 中找到更多相關(guān)信息。對(duì)于為什么要實(shí)現(xiàn)這個(gè)東西喷楣,那里有詳盡的資料和說(shuō)明(提示:結(jié)構(gòu)清晰)趟大。


7. PatternLockView(圖形鎖視圖)

這個(gè)庫(kù)讓你可以在應(yīng)用中簡(jiǎn)單快速的實(shí)現(xiàn)圖形鎖機(jī)制。這個(gè)視圖真的是非常易用抡蛙,它有大量的個(gè)性化選項(xiàng)可以用于改變功能和外觀(guān)护昧,以此滿(mǎn)足你的需求。
它還支持 RxJava 2 視圖綁定粗截,所以如果你喜歡響應(yīng)式編程(就像我一樣)惋耙,你可以得到用戶(hù)繪制圖形的更新流。
*README *中充滿(mǎn)了示例熊昌,所以入門(mén)很容易绽榛。


8. Isometric

這是一個(gè)有助于繪制等軸形狀的庫(kù)。在我看來(lái)婿屹,它是本列表中最炫的庫(kù)之一灭美,因?yàn)樗屛蚁肫鹆?Monument Valley 游戲。該庫(kù)支持繪制多個(gè)形狀昂利、路徑和復(fù)雜結(jié)構(gòu)届腐,如下面的示例:

9. UltraViewPager

UltraViewPager 是一個(gè)封裝多種特性的 ViewPager 铁坎,主要是為多頁(yè)面切換場(chǎng)景提供統(tǒng)一解決方案。



主要功能
支持橫向滑動(dòng)/縱向滑動(dòng)
支持一屏內(nèi)顯示多頁(yè)
支持循環(huán)滾動(dòng)
支持定時(shí)滾動(dòng)犁苏,計(jì)時(shí)器使用 Handler 實(shí)現(xiàn)
支持設(shè)置 ViewPager 的最大寬高
setRatio 按比例顯示 UltraviewPager
內(nèi)置 indicator 硬萍,只需簡(jiǎn)單設(shè)置幾個(gè)屬性就可以完成展示,支持圓點(diǎn)和 Icon围详;
內(nèi)置兩種頁(yè)面切換動(dòng)效

該庫(kù)有一個(gè)非常良好的文檔朴乖。

10. InfiniteCards

可自定義動(dòng)效的卡片切換視圖,該庫(kù)有助于實(shí)現(xiàn)卡片 UI 助赞,然后用一個(gè)漂亮的動(dòng)畫(huà)切換它們买羞。



參數(shù)
animType : 動(dòng)效展示類(lèi)型front : 將點(diǎn)擊的卡片切換到第一個(gè)
switchPosition : 將點(diǎn)擊的卡片和第一張卡片互換位置
frontToLast : 將第一張卡片移到最后,后面的卡片往前移動(dòng)一個(gè)

cardRatio : 卡片寬高比
animDuration : 卡片動(dòng)效時(shí)間
animAddRemoveDelay : 卡片組切換時(shí)雹食,添加與移出時(shí)畜普,相鄰卡片展示動(dòng)效的間隔時(shí)間
animAddRemoveDuration : 卡片組切換時(shí),添加與移出時(shí)婉徘,卡片動(dòng)效時(shí)間

11. SlidingRootNav

我們可以認(rèn)為這個(gè)庫(kù)是像 DrawerLayout 的 ViewGroup漠嵌,*drawer(抽屜) 隱藏在內(nèi)容視圖之下,可以通過(guò)改變它們來(lái)顯示 drawer盖呼。REAMDE *很全面儒鹿,值得一看。

12. PasscodeView

這就是一個(gè)你可以鍵入密碼的 view几晤。但非常棒约炎!


13. MusicWave

該庫(kù)允許將聲音表示為彩色梯度變化。


14. ShadowImageView

該庫(kù)可幫助你為圖片添加更有意義的陰影蟹瘾。根據(jù) README 圾浅,它的作用是:
可以根據(jù)圖片內(nèi)容變陰影顏色,更加細(xì)膩的陰影效果憾朴。
此外狸捕,它也非常易于使用。


15. PolygonDrawingUtil

這是一個(gè)高效的 Android 實(shí)用程序類(lèi)众雷,用于在 Canvas 上繪制常規(guī)的多邊形灸拍。 我們可以指定:
邊數(shù)(≥3)

中心點(diǎn)坐標(biāo)

外接圓半徑(從中心到頂點(diǎn)的距離)

圓角半徑

多邊形旋轉(zhuǎn)度

填充/描邊顏色

16. Tiny

這是本列表中的第二個(gè)框架。它負(fù)責(zé)圖像壓縮砾省,功能相當(dāng)強(qiáng)大的鸡岗。還支持
使用異步線(xiàn)程池來(lái)壓縮圖像,并且當(dāng)壓縮完成時(shí)编兄,會(huì)將結(jié)果發(fā)送到主線(xiàn)程中轩性。


17. ParticleTextView

該庫(kù)提供了一個(gè)自定義的 view 組件,可以用彩色粒子組成指定的文字狠鸳,并配合多種動(dòng)畫(huà)效果和配置屬性揣苏,呈現(xiàn)出豐富的視覺(jué)效果悯嗓。


18. CropIwa

這是一個(gè)高可配置的圖像裁剪部件。該庫(kù)基于模塊化結(jié)構(gòu)舒岸,因此它的可配置性非常強(qiáng)绅作。你可以從 Github 上的 WiKi 了解如何進(jìn)行配置芦圾。

19. Project Condom

『保險(xiǎn)套』是一個(gè)超輕超薄的 Android 工具庫(kù)蛾派,將它套在 Android 應(yīng)用工程里裸露的 Context 上,再傳入第三方 SDK(通常是其初始化方法)个少,即可防止三方 SDK 中常見(jiàn)的損害用戶(hù)體驗(yàn)的行為:****
在后臺(tái)啟動(dòng)大量其它應(yīng)用的進(jìn)程(在三方推送 SDK 中較為常見(jiàn))洪乍,導(dǎo)致應(yīng)用啟動(dòng)非常緩慢,啟動(dòng)后一段時(shí)間內(nèi)出現(xiàn)嚴(yán)重的卡頓(在中低端機(jī)型上尤其明顯)夜焦。 這是由于在這些 SDK 初始化階段啟動(dòng)的其它應(yīng)用中往往也存在三方 SDK 的類(lèi)似行為壳澳,造成了進(jìn)程啟動(dòng)的『鏈?zhǔn)椒磻?yīng)』,在短時(shí)間內(nèi)消耗大量的 CPU茫经、文件 IO 及內(nèi)存資源巷波,使得當(dāng)前應(yīng)用所能得到的資源被大量擠占(甚至耗盡)。

20. AppMethodOrder

一個(gè)能讓你了解所有函數(shù)調(diào)用順序以及函數(shù)耗時(shí)的 Android 庫(kù)(無(wú)需侵入式代碼)卸伞。
當(dāng)項(xiàng)目代碼量很大的時(shí)候抹镊,或者你作為一名新人要快速掌握代碼的時(shí)候,給函數(shù)打上 log 荤傲,來(lái)了解代碼執(zhí)行邏輯垮耳,這種方式會(huì)顯然成本太大,要改動(dòng)項(xiàng)目編譯運(yùn)行遂黍,NO终佛!太耗時(shí);或者你想 debug 的方式來(lái)給你想關(guān)注的幾個(gè)函數(shù)雾家,來(lái)了解代碼執(zhí)行邏輯铃彰,NO!因?yàn)槟憧隙〞?huì)漏掉函數(shù)芯咧;也許你可以固執(zhí)的給你寫(xiě)的項(xiàng)目打滿(mǎn) log 說(shuō)這樣也行牙捉,但是你要知道你方法所調(diào)用的 jdk 的函數(shù)或者第三方 aar 或者 jar 再或者 android sdk 中的函數(shù)調(diào)用順序你怎么辦,還能打 log 嗎唬党?顯然不行吧鹃共,來(lái)~這個(gè)項(xiàng)目給讓可以讓你以包名為過(guò)濾點(diǎn)過(guò)濾你想要知道所有函數(shù)調(diào)用順序。

項(xiàng)目有詳細(xì)的文件驶拱,你可以找到詳細(xì)的手冊(cè)了解如何使用它霜浴。


21. Android DebugKit

這是一個(gè)有趣的庫(kù)。它允許你創(chuàng)建和使用特殊的懸停調(diào)試工具蓝纲,以觸發(fā)你在應(yīng)用程序中定義的操作阴孟。這些操作可以在運(yùn)行時(shí)明顯的觸發(fā)晌纫,因此可以在編寫(xiě)或測(cè)試手機(jī)屏幕反饋時(shí)間時(shí)使用。
該庫(kù)使用 Builder 模式永丝。 它很容易使用锹漱,在 README 中有一個(gè)其用法的示例。


22. Aesthetic

這是一個(gè)新的庫(kù)慕嚷,仍處于測(cè)試版哥牍,但它做了一件非常酷的事情 - 它通過(guò) Rx 支持動(dòng)態(tài)改變系統(tǒng)主題喝检! 作者是這么描述的:
一個(gè)快速和易于使用的即插即用的動(dòng)態(tài)主題引擎嗅辣。由 Rx 支持,適用于 Android 應(yīng)用挠说。
該庫(kù)文檔非常不錯(cuò)澡谭、內(nèi)容全面,值得一讀损俭。


23. EasyCalendar

這是一個(gè)簡(jiǎn)單的自定義日歷小插件蛙奖。 主要功能包括:
自定義布局的標(biāo)題

自定義布局的日期

顯示或隱藏日期的分隔符

顯示或隱藏溢出的日期

監(jiān)聽(tīng)日期視圖的點(diǎn)擊操作

該庫(kù)的文檔是全面且易于使用的。


24. SimpleRatingBar

該庫(kù)提供兩個(gè)評(píng)分欄:
BaseRatingBar - 沒(méi)有任何動(dòng)畫(huà)

ScaleRatingBar - 具有漸進(jìn)和縮放動(dòng)畫(huà)

你可以在下面的 gif 圖中看到它們的效果:


25. Magellan

這個(gè)庫(kù)被標(biāo)榜為最簡(jiǎn)單的 Android 導(dǎo)航庫(kù)杆兵,但你仍然需要自己判斷它是否適合自己使用雁仲。主要特性:
調(diào)用 goTo(screen) 方法就能簡(jiǎn)單實(shí)現(xiàn)導(dǎo)航,

返回棧完全可控拧咳,

自動(dòng)處理過(guò)渡伯顶。

wiki 上有全面的說(shuō)明。

26. ViewPagerAnimator

ViewPagerAnimator 是一款面向 Android 的輕量級(jí)骆膝、功能強(qiáng)大的 ViewPager 動(dòng)畫(huà)庫(kù)祭衩。 它被設(shè)計(jì)為在用戶(hù)在 ViewPager 中的頁(yè)面之間導(dǎo)航時(shí)顯示任意動(dòng)畫(huà),并且將精確地跟隨他或她的手指的動(dòng)作阅签。雖然該庫(kù)本身可能對(duì)某些人有用掐暮,但是發(fā)布這個(gè)庫(kù)的主要目的就是展示一些完美 API 的細(xì)節(jié)之處,在使用即將到來(lái)的 Java 8 擴(kuò)展時(shí)政钟,這真的是走在前列的路克。本庫(kù)還提供了 Java 7 和 Java 8 的示例項(xiàng)目。
它是由 Mark Allison 寫(xiě)的养交,你可以在他的 Styling Android 博客上獲得更多的信息精算。

27. BlockCanaryEx

這是一個(gè)當(dāng)你的應(yīng)用程序被阻塞時(shí),它可以方便在代碼中找到阻塞的方法的庫(kù)碎连。它是基于 BlockCanary 的灰羽。
[圖片上傳中。。廉嚼。(11)]

28. PaletteImageView

非趁蹈洌酷的一個(gè)庫(kù),可以動(dòng)態(tài)的提取圖片的主要顏色怠噪,并將顏色作為圖片陰影的控件恐似。



該項(xiàng)目文檔較少,但我認(rèn)為代碼是不言自明的傍念。

29. RecyclerRefreshLayout

這是一個(gè)打開(kāi)相機(jī)快門(mén)的刷新動(dòng)畫(huà)矫夷。在我看來(lái),真的值得研究捂寿,特別是在 README 中有一個(gè)關(guān)于如何實(shí)現(xiàn)這個(gè)效果的數(shù)學(xué)分析口四!


30. SlimAdapter

這是一種不使用 ViewHolder 來(lái)編寫(xiě)適配器的方法。主要功能包括:
不包含 ViewHolders

沒(méi)有反射

流暢和簡(jiǎn)單的 API

支持多類(lèi)型適配器

支持 Kotlin

支持簡(jiǎn)單的 DiffUtil

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秦陋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子治笨,更是在濱河造成了極大的恐慌驳概,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷赖,死亡現(xiàn)場(chǎng)離奇詭異顺又,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)等孵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)稚照,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人俯萌,你說(shuō)我怎么就攤上這事果录。” “怎么了咐熙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵弱恒,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我棋恼,道長(zhǎng)返弹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任爪飘,我火速辦了婚禮义起,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘师崎。我一直安慰自己默终,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著穷蛹,像睡著了一般土陪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肴熏,一...
    開(kāi)封第一講書(shū)人閱讀 52,736評(píng)論 1 312
  • 那天鬼雀,我揣著相機(jī)與錄音,去河邊找鬼蛙吏。 笑死源哩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸦做。 我是一名探鬼主播励烦,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼泼诱!你這毒婦竟也來(lái)了坛掠?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤治筒,失蹤者是張志新(化名)和其女友劉穎屉栓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體耸袜,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡友多,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堤框。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片域滥。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜈抓,靈堂內(nèi)的尸體忽然破棺而出启绰,到底是詐尸還是另有隱情,我是刑警寧澤资昧,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布酬土,位于F島的核電站,受9級(jí)特大地震影響格带,放射性物質(zhì)發(fā)生泄漏撤缴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一叽唱、第九天 我趴在偏房一處隱蔽的房頂上張望屈呕。 院中可真熱鬧,春花似錦棺亭、人聲如沸虎眨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嗽桩。三九已至岳守,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碌冶,已是汗流浹背湿痢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扑庞,地道東北人譬重。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像罐氨,于是被迫代替她去往敵國(guó)和親臀规。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,332評(píng)論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,793評(píng)論 22 665
  • 男主就剩下一身警服和一腔熱血栅隐,不知道還能夠菜鳥(niǎo)多久塔嬉,正氣逐漸土崩瓦解≡及。可以分工拆解式的合作邑遏,有龍骨有潤(rùn)色,有掌舵有...
    賤金屬閱讀 331評(píng)論 0 0
  • 我是一個(gè)銷(xiāo)售恰矩,可并不算一個(gè)純正的銷(xiāo)售… 銷(xiāo)售,從產(chǎn)品到用戶(hù)的橋梁憎蛤!從需求到訴求的
    墨竹CarlWilson閱讀 194評(píng)論 0 0
  • 賈科梅蒂是一個(gè)幸福的人外傅。 他出生藝術(shù)世家,有自己對(duì)藝術(shù)的堅(jiān)持俩檬,找到了自己的獨(dú)特風(fēng)格萎胰,有支持自己的親人。他有天賦棚辽,有...
    一書(shū)onebook閱讀 293評(píng)論 0 1