Android開發的寶庫愈來愈多,我開發中有須要的組件,主要參考Trinea的大做Android開源項目分類彙總(包含了後面的絕大多數)、CSDN上直接拿來用!最火的Android開源項目還有CSDN上的直接拿來用!十大Material Design開源項目,受益不淺,可是,有的分類項目太多,不是每一個項目都有預覽,不容易找到什麼是最想要的,並且有一些項目不容易順利地導入,我把同類的Demo作到一個app裏,供你們下載參考。不過順序沒有按Trinea的大做來,當下須要什麼控件,就優先寫哪些,先從最近用的ProgressBar開始,progressbar的相關工程所有從Trinea的彙總中得來,而且就按Trinea的順序給出。android
由於個人Demo是多個sample的集合,那麼每一個項目的demo都涉及哪些文件,可能會以爲比較亂,如無特殊說明,只有和項目名同名的Activity還有對應的layout。由於全部的庫都是作一樣的事情,它們自定義屬性的時候可能出現衝突,這種狀況我稍微修改了部分的屬性名,前面是各個項目的預覽圖,後面是對每一個項目的說明,包括我是否作了修改。git
綜合全部ProgressBar效果的Demo App下載,對應的Android Studio工程下載。github
1. SmoothProgressBarapp
2. ProgressWheelmaven
3. android-square-progressbarflex
4. HoloCircularProgressBargradle
5. ProgressButton動畫
6. GoogleProgressBarurl
7. THProgressButtonspa
10. circular-progress-button 11. WaveView
項目地址:https://github.com/castorflex/SmoothProgressBar
項目描述:這個水平進度條的確是很漂亮,可是在sample裏還定義了大量的樣式,眼光繚亂,我以爲做者demo裏的這幾個樣式已經很好看,大可沒必要再去自定義。這個項目有兩個library,一個是水平進度條的,還有一個是圓形進度條的,這兩個自己在maven上都有,圓形進度條我是引的maven的,但水平進度條的庫我是在本地引入,而後把demo裏的樣式移到了library裏面,這樣用的時候只把layout裏的組件粘貼一下就能夠了。若是按照sample裏的本身定義樣式,那麼能夠直接引用官方的庫:
compile 'com.github.castorflex.smoothprogressbar:library:1.0.0'
compile 'com.github.castorflex.smoothprogressbar:library-circular:1.0.2'
本項目的相關文件爲:
org.zhangfc.android.pb.smoothprogressbar.SpbMainActivity
@layout/spb_activity_main
org.zhangfc.android.pb.smoothprogressbar.SpbMakeCustomActivity
@layout/spb_activity_custom
項目地址:https://github.com/Todd-Davies/ProgressWheel
項目說明:這個比較簡單,都是圓形的ProgressBar,將庫做爲project library導入。便可。
項目地址:https://github.com/mrwonderman/android-square-progressbar
接口說明:https://github.com/mrwonderman/android-square-progressbar/wiki/Usage
項目說明:這個項目是在圖片周圍顯示進度。它的官方Demo很亂,文檔也很散,我基本沒有看官方的Demo,直接按照文檔上的幾個examples寫的Demo。關於庫的導入,原做者並無把這個項目上傳到maven,因此最新版的只能本地引入。有另一我的把這個項目放到了maven倉庫裏,不過版本不是最新的。寫這篇文章的時候,maven倉庫裏的版本號是1.3.0,而最新的1.4.0對文字自定義樣式、自定義Bitmap的支持1.3.0都是沒有的,注意自定義Bitmap的時候會拋一個NullPointerException,打開library的SquareProgressBar,在最後一個方法setImageBitmap裏面加上對imageView的賦值就行了:
public void setImageBitmap(Bitmap bitmap){ imageView = (ImageView) findViewById(R.id.imageView1); imageView.setImageBitmap(bitmap); }
因此仍是建議使用本地library。但若是仍是想使用maven倉庫的版本,首先指定maven位置:
repositories {
maven {
url 'https://raw.github.com/elodieferrais/wonder-libraries/master'
name 'github-wonder-libraries'
}
}
而後在依賴中引入:
compile 'net.yscs.android:square_progressbar:1.3.0'
本項目相關的資源文件爲
drawable-hdpi/sqpb_city.jpg
項目地址:https://github.com/passsy/android-HoloCircularProgressBar
項目說明:Android4.1 時鐘App樣式。這個項目的library只能在本地導入,Demo中原做者還在menu中加入了兩種Theme的切換,爲了Demo的簡單性,我刪了相關代碼,效果能夠直接看官方提供的Demo圖片。固然,刪除了設置主題的代碼,Demo關於動畫的控制也還很多。由於屬性和其它項目衝突,我把progress屬性換成了circular_progress。
項目地址:https://github.com/f2prateek/progressbutton
文檔地址:http://f2prateek.com/progressbutton/
項目說明:用圖釘顯示進度,原本這個項目直接引用maven當中的庫沒有問題,可是由於我把全部的progressbar整合在一塊兒,有一些自定義屬性發生了衝突,因此我只能在本地導入,修改一下屬性名。真正在使用這個項目時,在gradle文件中指定庫的位置:
compile 'com.f2prateek:progressbutton:1.0.3@aar'
使用自定義屬性時,我把circleColor改成pbtn_circleColor,progress改成pbtn_progress,max換爲pbtn_max。
項目地址:https://github.com/jpardogo/GoogleProgressBar
項目說明:Google風格的ProgressBar,直接引用maven庫,Demo裏提供了選擇顏色的UI,簡化期間,只並列放了三種風格的ProgressBar,怎麼設定顏色在代碼裏很是清晰,在getProgressDrawableColors方法中修改便可。
項目地址:https://github.com/torryharris/TH-ProgressButton
項目說明:帶有圓形進度顯示的按鈕,這個項目自己沒有區分library和sample,做者只是建議直接把兩個類放到本身的項目裏就能夠用了。我也把這個library提取了出來,做爲project library引入。
項目地址:https://github.com/daimajia/NumberProgressBar
項目說明:直接maven引入庫,帶有數字指示的進度條,能夠自定義數字先後的粗細。
項目地址:https://github.com/Sefford/CircularProgressDrawable
項目說明:比較好看的一個庫,直接引入maven庫,圓形顯示進度。
項目地址:https://github.com/dmytrodanylyk/circular-progress-button
項目說明:圓形按鈕,須要顯示爲進度時轉化爲圓形進度條。直接引入maven庫。
資源文件:除了Activity和layout,還有三個自定義的動畫文件:
drawable/complete_state_selector.xml drawable/error_state_selector.xml drawable/idle_state_selector.xml
項目地址:https://github.com/john990/WaveView
項目說明:波紋效果的View,能夠做爲沒有進度值的進度條,由於和其餘項目的屬性衝突,將progress屬性改成wave_progress,library從module引入。