目录介绍

  • 1.本库优势亮点
  • 2.使用介绍

    • 2.1 圆环百分比进度条
    • 2.2 直线百分比进度条
    • 2.3 仿杀毒类型百分比进度条
  • 3.注意要点
  • 4.效果展示
  • 5.其他介绍

1.本库优势亮点

  • 圆环百分比进度条

    • 简便且小巧,支持设置多种属性。可以设置内圆和外圆的颜色,设置圆环的边缘宽度。
    • 支持设置倒计时总时间,可以调用start开始倒计时,也可以调用stop暂停倒计时,也可以自定义设置进度
  • 仿杀毒类型百分比进度条

    • 支持设置多种类型,比如设置百分比+单位类型,或者设置空类型【也就是不显示中间百分比】
    • 支持设置进度条的颜色,未更新的进度条颜色;设置百分比文字大小,颜色;支持设置单位等多种属性
    • 支持允许多线程访问,对于设置setProgress,添加synchronized关键字修饰。设置进度progress,如果小于0或者大于100,则抛异常。避免开发者使用造成其他问题。
  • 针对进度条,对于设置color颜色的方法,增加了注解@ColorInt,限制开发者调用color资源
  • 使用注解代替了枚举,针对设置枚举的方法,使用注解限制开发者调用时传入的类型。具体可见代码案例!
  • 注释十分详细,作为开源的lib库,我觉得要让使用者一目了然。方便调用同时,知道每个方法的作用。
  • 代码量少,如果想学习并深入自定义控件,可以从简单开始。这个项目就很符合!
  • 项目地址:https://github.com/yangchong211/YCProgress

2.使用介绍

  • 集成库:compile 'cn.yc:YCProgressLib:1.2.6'

2.1 圆环百分比进度条

  • 在布局中

    //也可以设置布局中的attr属性
    <com.ns.yc.ycprogresslib.CircleProgressbarandroid:id="@+id/pb_1"android:layout_width="100dp"android:layout_height="100dp"android:text="进度条" />
    
  • 使用方法

    //设置类型
    pb_1.setProgressType(ProgressBarUtils.ProgressType.COUNT);
    //设置圆形的填充颜色
    pb_1.setInCircleColor(getResources().getColor(R.color.redTab));
    //设置外部轮廓的颜色
    pb_1.setOutLineColor(getResources().getColor(R.color.grayLine));
    //设置进度监听
    pb_1.setCountdownProgressListener(1, progressListener);
    //设置外部轮廓的颜色
    pb_1.setOutLineWidth(2);
    //设置进度条线的宽度
    pb_1.setProgressLineWidth(5);
    //设置进度
    pb_1.setProgress(60);
    //设置倒计时总时间
    pb_1.setTimeMillis(3000);
    //设置进度条颜色
    pb_1.setProgressColor(getResources().getColor(R.color.colorPrimary));//开始
    pb_1.start();
    //暂停
    pb_1.stop();
    //重新开始
    pb_1.reStart();

2.2 直线百分比进度条

  • 在布局中

    <com.ns.yc.ycprogresslib.NumberProgressbarandroid:id="@+id/bar1"android:layout_width="match_parent"android:layout_height="wrap_content" /><com.ns.yc.ycprogresslib.NumberProgressbarandroid:id="@+id/bar2"android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"app:progress_max="100"app:progress_reached_bar_height="3dp"app:progress_unreached_bar_height="3dp"app:progress_reached_color="@color/colorPrimary"app:progress_unreached_color="@color/gray3"app:progress_text_size="14sp"app:progress_text_color="@color/colorAccent"app:progress_text_visibility="visible"/>
  • 代码调用

    bar1 = (NumberProgressbar) findViewById(R.id.bar1);
    //设置倒计时总时间
    bar1.setTimeMillis(10000);
    //设置最大进度条的值
    bar1.setMax(100);
    //设置进度条文本的颜色
    bar1.setProgressTextColor(this.getResources().getColor(R.color.colorAccent));
    //设置进度条文本的大小
    bar1.setProgressTextSize(ProgressBarUtils.sp2px(this,14));
    //设置百分比文字内容是否可见
    bar1.setNumberTextVisibility(ProgressBarUtils.NumberTextVisibility.Visible);
    //设置百分比进度条的高度
    bar1.setReachedBarHeight(10);
    //设置未更新百分比进度条的高度
    bar1.setUnreachedBarHeight(10);
    //设置百分比进度条的颜色
    bar1.setReachedBarColor(this.getResources().getColor(R.color.redTab));
    //设置未更新百分比进度条的颜色
    bar1.setUnreachedBarColor(this.getResources().getColor(R.color.blackText2));
    //设置百分比进度条的监听
    bar1.setOnProgressBarListener(new OnNumberProgressListener() {@Overridepublic void onProgressChange(int current, int max) {}
    });//开始
    bar1.start();
    //暂停
    bar1.stop();

2.3 仿杀毒类型百分比进度条

  • 布局代码

    <com.ns.yc.ycprogresslib.RingProgressBarandroid:id="@+id/bar_percent"android:layout_width="100dp"android:layout_height="100dp"/>
  • 如何调用

    bar_percent = (RingProgressBar) findViewById(R.id.bar_percent);
    //设置进度
    bar_percent.setProgress(0);
    //设置更新进度条颜色
    bar_percent.setDotColor(this.getResources().getColor(R.color.colorAccent));
    //设置未更新部分的进度条颜色
    bar_percent.setDotBgColor(this.getResources().getColor(R.color.blackText));
    //设置百分比文字颜色
    bar_percent.setPercentTextColor(this.getResources().getColor(R.color.blackText1));
    //设置百分比文字大小
    bar_percent.setPercentTextSize(ProgressBarUtils.dp2px(this,16.0f));
    //设置展示的类型
    bar_percent.setShowMode(ProgressBarUtils.RingShowMode.SHOW_MODE_PERCENT);
    //设置单位的文字内容
    bar_percent.setUnitText("%");
    //设置单位的文字大小
    bar_percent.setUnitTextSize(ProgressBarUtils.dp2px(this,16.0f));
    //设置单位的文字颜色
    bar_percent.setUnitTextColor(this.getResources().getColor(R.color.blackText1));
  • 可以设置多种类型

    • 第一种:百分比+单位【支持自己设置单位,比如设置%,或者设置毫秒s等】
    • 第二种:空显示模式【也就是不显示中间的部分】

3.注意要点

  • 3.1 不论是圆环进度条还是直线进度条,在调用setProgress设置进度时,增加了验证进度的功能。因为如果设置值超过100或者小于0,该方法就起作用呢!

    /*** 验证进度。** @param progress      你要验证的进度值。* @return              返回真正的进度值。*/
    private int validateProgress(int progress) {if (progress > 100){progress = 100;} else if (progress < 0){progress = 0;}return progress;
    }
  • 3.2 针对CircleProgressbar和NumberProgressbar自定义控件,如果调用start方法开始循环执行setProgress,程序意外销毁,则注意:

    /*** 当自定义控件销毁时,则调用该方法*/
    @Override
    protected void onDetachedFromWindow() {super.onDetachedFromWindow();stop();
    }
  • 项目地址:https://github.com/yangchong211/YCProgress

4.效果展示





5.其他介绍

版本更新说明

  • v1.0.0 更新于2016/2/10 作用于投资界下载更新进度条,学习自定义控件
  • v1.1.1 更新于2016/8/12 针对圆环进度条,添加自定义attr属性
  • v1.1.2 更新于2017/3/10 针对圆环进度条添加设置倒计时总时间,start和stop方法
  • v1.1.3 更新于2017/5/27 针对设置进度的方法,增加校验,不能小于0或者大于100
  • v1.2.5 更新于2018年8月24日 添加了直线百分比进度条,针对部分方法添加注解
  • v1.2.6 更新于2018年11月30日 添加了详细的注释
  • v1.2.7 更新于2018/12/3 更新targetSdkVersion版本是27
  • 关于直线百分比进度条参考了代码家NumberProgressBar项目:https://github.com/daimajia/NumberProgressBar

关于博客汇总链接

  • 1.技术博客汇总
  • 2.开源项目汇总
  • 3.生活博客汇总
  • 4.喜马拉雅音频汇总
  • 5.其他汇总

其他推荐

  • 博客笔记大汇总【15年10月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计47篇[近20万字],转载请注明出处,谢谢!
  • 链接地址:https://github.com/yangchong211/YCBlogs
  • 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!

关于LICENSE

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

YCProgress自定义百分比进度条相关推荐

  1. android 画圆弧动画,『Android自定义View实战』自定义带入场动画的弧形百分比进度条...

    写在前面 这是在简书发表的处女座,这个想法也停留在脑海中很久了,一直拖到现在(懒癌发作2333),先自我介绍一番,一枚刚毕业不久的Android程序猿,初出茅庐的Android小生,之前一直在CSDN ...

  2. 自定义环形进度条RoundProgressBar

    一.效果图: Canvas画圆环说明: 圆环宽度不必在意,只是画笔宽度设置后达到的效果. 二.实现步骤 1.自定义View-RoundProgressBar 2.设置属性resources(decle ...

  3. android 环形时间显示_Android_Android实现自定义圆形进度条,今天无意中发现一个圆形进度 - phpStudy...

    Android实现自定义圆形进度条 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制 ...

  4. php 进度条百分比算法,实例讲解Ajax实现简单带百分比进度条

    最近做项目遇到这样的需求要求当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验,下面通过实例代码给大家介绍基于ajax实现带百分比进度条效果,需要的的朋友参考下吧,希 ...

  5. Java渐变进度条_Android ProgressBar自定义图片进度,自定义渐变色进度条

    java.lang.Object ↳android.view.View ↳android.widget.ProgressBar 直接子类 AbsSeekBar 间接子类 RatingBar, Seek ...

  6. ajax百分比加载特效,jQuery实现的简单百分比进度条效果示例

    本文实例讲述了jQuery实现的简单百分比进度条.分享给大家供大家参考,具体如下: 一.JS Code: var progressId = "ProgressBarID"; fun ...

  7. Android自定义圆形进度条

    Android自定义圆形进度条 github地址:https://github.com/opq1289/CircleProgressView 效果图: 无动画: 有动画: 整圆: 切割圆: 具体步骤: ...

  8. Android中用图片自定义一个进度条(实现蒙板效果)

    问题概述 对于进度条我相信大家不陌生,这里我就不再多说什么了.因为这个不是重点.我们要说的是如何去自定义一个不一样的进度条.这里用到两张图片(背景和前景),其实是三张(背景.前景和蒙图).当我们的蒙图 ...

  9. android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色

    Android 自定义ProgressBar 进度条颜色和背景颜色 首先,在drawable目录下新建文件 personal_center_level_progress_bg.xmlandroid a ...

最新文章

  1. C# mongodb 类库
  2. ML之FE:数据处理—特征工程之高维组合特征的处理案例(矩阵分解)——基于LoR算法的广告点击预估问题
  3. linux安装java_Linux安装JDK完整步骤
  4. 我的世界服务器背景音乐修改,我的世界怎么添加背景音乐 修改添加bgm音乐方法...
  5. ffmpeg文档6:同步音频
  6. 朴素贝叶斯和贝叶斯估计_贝叶斯估计收入增长的方法
  7. c 语言 结构体 编程,C语言:结构体的编程问题(很简单)
  8. 信息学奥赛C++语言:旅行
  9. 专访 openEuler 江大勇:对美好的向往就是越有能力越开放
  10. 转 linux shell 数组建立及使用技巧
  11. TTF字体文件内容获取
  12. Windows 使用技巧之WinZIP密码破解
  13. 【学习笔记】福州大学网络课程 网络空间安全概论(1,4)
  14. python自动生成文章原创_Python文章原创度检测脚本【亲测有效】
  15. blast2go mysql_从 Blast2GO 本地化聊一聊 Linux 下 MySQL 的源码安装
  16. java web如何根据用户使用的浏览器来提示用户更新或更换浏览器
  17. ASP版微信分享JS-SDK代码
  18. 如果你有想珍惜的人,一定要送TA这个礼物!绝美又有内涵
  19. 南邮 OJ 1128 An Industrial Spy
  20. CSAPP 3e Attack lab

热门文章

  1. 1750亿参数,史上最大AI模型GPT-3上线:不仅会写文章、答题,还懂数学
  2. 短文本相似度算法研究
  3. SAP 如何看某个TR是否传入了Q或者P系统?
  4. 三星出了个AI黑科技,不只是“换脸”这么简单
  5. 一个动作让全球震惊!百度Apollo就这样改写了全球智能驾驶格局
  6. 为何生命进化的方向是衰老,而不是永生?
  7. DeepMind的新强化学习系统是迈向通用AI的下一步吗?
  8. 多少血的教训,才能换来对自动驾驶的严格限定、真实了解和正确使用?
  9. 彩图完美解释:麦克斯韦方程组
  10. 脑机接口简史——假如这篇推送是你靠意念打开的