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引入。