Android开发的宝库越来越多,我开发中有需要的组件,主要参考Trinea的大作Android开源项目分类汇总(包含了后面的绝大多数)、CSDN上直接拿来用!最火的Android开源项目还有CSDN上的直接拿来用!十大Material Design开源项目,受益匪浅,但是,有的分类项目太多,不是每个项目都有预览,不容易找到什么是最想要的,而且有一些项目不容易顺利地导入,我把同类的Demo做到一个app里,供大家下载参考。不过顺序没有按Trinea的大作来,当下需要什么控件,就优先写哪些,先从最近用的ProgressBar开始,progressbar的相关工程全部从Trinea的汇总中得来,并且就按Trinea的顺序给出。

  因为我的Demo是多个sample的集合,那么每个项目的demo都涉及哪些文件,可能会觉得比较乱,如无特殊说明,只有和项目名同名的Activity还有对应的layout。因为所有的库都是做同样的事情,它们自定义属性的时候可能出现冲突,这种情况我稍微修改了部分的属性名,前面是各个项目的预览图,后面是对每个项目的说明,包括我是否做了修改。

  综合所有ProgressBar效果的Demo App下载,对应的Android Studio工程下载。

1. SmoothProgressBar

2. ProgressWheel

3. android-square-progressbar

4. HoloCircularProgressBar

   

5. ProgressButton

6. GoogleProgressBar

      

7. THProgressButton

8. NumberProgressBar

9. CircularProgressDrawable

     

10. circular-progress-button     11. WaveView

    

1. SmoothProgressBar

项目地址: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

2. ProgressWheel

项目地址:https://github.com/Todd-Davies/ProgressWheel

项目说明:这个比较简单,都是圆形的ProgressBar,将库作为project library导入。即可。

3. android-square-progressbar

项目地址: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

4. HoloCircularProgressBar

项目地址:https://github.com/passsy/android-HoloCircularProgressBar

项目说明:Android4.1 时钟App样式。这个项目的library只能在本地导入,Demo中原作者还在menu中加入了两种Theme的切换,为了Demo的简单性,我删了相关代码,效果可以直接看官方提供的Demo图片。当然,删除了设置主题的代码,Demo关于动画的控制也还不少。因为属性和其它项目冲突,我把progress属性换成了circular_progress。

5. ProgressButton

项目地址: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。

6. GoogleProgressBar

项目地址:https://github.com/jpardogo/GoogleProgressBar

项目说明:Google风格的ProgressBar,直接引用maven库,Demo里提供了选择颜色的UI,简化期间,只并列放了三种风格的ProgressBar,怎么设定颜色在代码里非常清晰,在getProgressDrawableColors方法中修改即可。

7. THProgressButton

项目地址:https://github.com/torryharris/TH-ProgressButton

项目说明:带有圆形进度显示的按钮,这个项目本身没有区分library和sample,作者只是建议直接把两个类放到自己的项目里就可以用了。我也把这个library提取了出来,作为project library引入。

8. NumberProgressBar

项目地址:https://github.com/daimajia/NumberProgressBar

项目说明:直接maven引入库,带有数字指示的进度条,可以自定义数字前后的粗细。

9. CircularProgressDrawable

项目地址:https://github.com/Sefford/CircularProgressDrawable

项目说明:比较好看的一个库,直接引入maven库,圆形显示进度。

10. circular-progress-button

项目地址: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

11 WaveView

项目地址:https://github.com/john990/WaveView

项目说明:波纹效果的View,可以作为没有进度值的进度条,因为和其他项目的属性冲突,将progress属性改为wave_progress,library从module引入。

【Android】开源项目UI控件分类汇总之ProgressBar的更多相关文章

  1. 【Android】开源项目UI控件分类汇总之Dialog

    接前文ProgressBar:Android开发的宝库越来越多,我开发中有需要的组件,主要参考Trinea的大作Android开源项目分类汇总(包含了后面的绝大多数).CSDN上直接拿来用!最火的An ...

  2. Android开源库集合(控件)

    RecycleView: RecycleView功能增强 https://github.com/Malinskiy/SuperRecyclerView RecycleView功能增强(拖拽,滑动删除, ...

  3. Android 开源项目android-open-project解析之(二) GridView,ImageView,ProgressBar,TextView

    五.GridView StaggeredGridView 同意非对齐行的GridView,类似Pinterest的瀑布流.而且跟ListView一样自带View缓存,继承自ViewGroup 项目地址 ...

  4. Android学习路-UI控件

  5. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

  6. 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...

  7. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  8. Android 常用炫酷控件(开源项目)git地址汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...

  9. Android开源项目分类汇总

    目前包括: Android开源项目第一篇——个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...

随机推荐

  1. Eplan中电缆源和目标的确定规则

    使用过Eplan的都知道,生成电缆总览时会有源和目标,电缆是怎么定义源和目标的呢,下面给大家讲解.确定源和目标按照下列规则确定电缆的源和目标: 首先考虑结构标识符中标识性的层结构说明.如果两端都是端子 ...

  2. JavaScript ---属性

    获取属性 可以通过点(.)或方挂号([])运算符来获取属性的值. 对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符.对于[]来说,方挂号内必须是一个计算结果为字符串的表达式. var aut ...

  3. 30分钟入门Java8之方法引用

    30分钟入门Java8之方法引用 前言 之前两篇文章分别介绍了Java8的lambda表达式和默认方法和静态接口方法.今天我们继续学习Java8的新语言特性--方法引用(Method Referenc ...

  4. Java中删除文件、删除目录及目录下所有文件(转)

    原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...

  5. HTML5[2]:使用viewport控制手机浏览器布局

    基本 <meta name="viewport" content="width=device-width, initial-scale=1">192 ...

  6. 设置函数环境——setfenv

    当我们在全局环境中定义变量时经常会有命名冲突,尤其是在使用一些库的时候,变量声明可能会发生覆盖,这时候就需要一个非全局的环境来解决这问题.setfenv函数可以满足我们的需求. setfenv(f, ...

  7. 利用__index和__newindex实现默认值表、监控表、只读表

    __index和__newindex实际上相当于是在读写表的时候分别加了一道过滤的逻辑,让读写表的操作可以被监控或说回调,利用这个特性可以实现一些带有特殊功能的表. 带有默认值的表: setdefau ...

  8. 免费下载:320+ 手绘风格 Apple iOS7 图标

    Themify 图标是一套用在网页设计和应用程序的图标,包括 320+ 手工制作的像素完美的苹果  iOS7 图标中汲取灵感.这些图标完全免费,您可以用于任何目的,无论是个人或商业. 您可能感兴趣的相 ...

  9. IIS负载均衡的NLB解决方案

    在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题.那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Serve ...

  10. 全网最详系列之-倍增求LCA

    1,什么是LCA LCA.最近公共祖先.是一个在解决树上问题最强劲有力的一个工具.一般都是指.在一棵树上取两个节点a,b .另一个节点x它满足  x是a与b的祖先而且x深度最大.这个x就是节点a,b的 ...