【Android】开源项目UI控件分类汇总之ProgressBar
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工程下载。
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的更多相关文章
- 【Android】开源项目UI控件分类汇总之Dialog
接前文ProgressBar:Android开发的宝库越来越多,我开发中有需要的组件,主要参考Trinea的大作Android开源项目分类汇总(包含了后面的绝大多数).CSDN上直接拿来用!最火的An ...
- Android开源库集合(控件)
RecycleView: RecycleView功能增强 https://github.com/Malinskiy/SuperRecyclerView RecycleView功能增强(拖拽,滑动删除, ...
- Android 开源项目android-open-project解析之(二) GridView,ImageView,ProgressBar,TextView
五.GridView StaggeredGridView 同意非对齐行的GridView,类似Pinterest的瀑布流.而且跟ListView一样自带View缓存,继承自ViewGroup 项目地址 ...
- Android学习路-UI控件
- 那些年不错的Android开源项目
那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...
- 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...
- Android常用酷炫控件(开源项目)github地址汇总
转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...
- Android 常用炫酷控件(开源项目)git地址汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...
- Android开源项目分类汇总
目前包括: Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...
随机推荐
- js两种定义函数、继承方式及区别
一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...
- Silver Cow Party(最短路,好题)
Silver Cow Party Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Su ...
- Android中使用自身携带的Junit新建一个测试工程
1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...
- HTML5[3]:中文换行
保证中文每行第一个字,不会出现标点符号 p { white-space: pre-wrap; }
- mysql event
1.定时调用 存储过程 DELIMITER $$ ALTER DEFINER=`root`@`localhost` EVENT `event_stroke_ArchivesReportDataRefr ...
- WCF安全2-非对称加密
概述: 数字签名和加密依赖于相应的加密算法 自变量:加密前的数据.密钥 因变量:加密后的数据 加密算法分类:根据加密和解密这两种步骤采用的密钥的是否相同进行分类 相同:对称加密 不相同:非对称加密 非 ...
- c++中基类与派生类中隐含的this指针的分析
先不要看结果,看一下你是否真正了解了this指针? #include<iostream> using namespace std; class Parent{ public: int x; ...
- Spring MVC全局异常处理与拦截器校检
在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性. 拦截系统响应错误 首先是拦截系统响应错误,这个可以在web.xml中配 ...
- 利用session做国际化引起的old区内存爆满及修复方法
题记:昨天加班打车回家,看见前面有辆路虎在高速上开的巨慢,挡住了我坐的出租车的路,于是就跟司机吐槽了一句:“前面这车怎么这么面啊?”,司机沉默了大概3秒,说了一句富含哲理性的话:“没有面车,只有面人” ...
- React Native实践之携程Moles框架
编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...