美文网首页AndroidAndroid 实用控件
Android 纯粹到一句代码即可启动的圆形进度条

Android 纯粹到一句代码即可启动的圆形进度条

作者: AndroidWanLi | 来源:发表于2016-07-26 16:27 被阅读1098次

    前言#


    最近群里有人说他们在项目中有实现圆形进度的需求,但是对于自定义View的技能比较弱。
    私下我对他讲解了一番,可是,他竟然让我帮他写。
    开始我是拒绝的,因为不是你说让我写我就写,因为我写出来你可能还是不会。可是他跟我讲,写完奖励我十包辣条,上传到简书还会有打赏。我酝酿之后也知道他很有诚意,没有加特技,诚意duang~duang~duang~。 我上传到简书,打赏duang~duang~duang~ 观众用完之后,自定义View和属性动画 duang~duang~duang~ 后来我索性直接做成一个库,直接一句代码即可使用compile 'com.wanlili:circleprogressview:1.0.1'
    虽然我今天心情很不好,但还是即兴创作这首歌送给大家~(哭)

    一句话#


    一个简约纯粹的圆形进度条。(API>=19)

    上gif#


    circleProgressView.gif

    使用#


    你只需要传入你想要的参数即可。例如

    如果你想要一些自定义的样式(有以下三个自定义属性)

      <com.wanli.com.circleprogressview.CircleProgressView
            android:id="@+id/circle"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_centerInParent="true"
            app:c_colorCircle="@color/colorPrimary"      //圆形的颜色
            app:c_colorProgress="@color/colorAccent"     //进度的颜色
            app:c_strokeWidth="20.0" />             //圆形的宽度
    

    如果你想在启动之前设置一些默认值

     circle = (CircleProgressView) findViewById(R.id.circle);
     circle.setDurationsecondscurrent(1f);   //设置当前进度
     circle.setDurationSecondsMax(10f);      //设置最大进度
     circle.setTotalSeconds(1000);      //设置一共需要耗时多少毫秒。不设置默认从1到10为每隔一秒加1
    

    启动

     circle.start();       //启动
    

    如果你还想在启动后实时得到进度的数值,那么你启动的时候传一个接口回调参数即可

     circle.start(new CircleProgressView.OnProgressListener() {
                        @Override
                        public void onProgressListener(float progress) {    //实时进度的数值
                            text1.setText(String.valueOf(progress));    
                        }
    
                        @Override
                        public void onProgressEnd(float progress) {         //结束的数值
                            text1.setText(String.valueOf(progress));
                        }
                    });
    

    也许你想在其它地方得到进度数值

     circle.getDurationsecondscurrent()
    

    暂停,恢复,判断是否结束呢

     circle.pause();
     circle.resume();
     circle.isEnd()
    

    也许你还想看看源码,或者直接来个例子

    https://github.com/WanLiLi/CircleProgressView 记得Star

    也许你还好奇上一篇讲了什么?

    http://www.jianshu.com/p/f160b787231e Android折叠伸缩效果的实现

    基于上一篇的文章中的gif,有一个好眼力的简友[Android里的海贼王]就询问从A跳转到B界面中的图片动画是怎么实现的,多个元素一起执行动画又怎么实现。关于这个问题,不知道有多少人需要了解?

    结束#


    感谢打赏过以及关注的简友,是你们让我在心情不好的时候还能坚持写作。

    相关文章

      网友评论

      • mcp1993: app:c_strokeWidth="60"的时候,圆的形状不完整,请问怎么解决
        mcp1993:@AndroidWanLi 就是圆被一个正方形盖住的样子,顶部都被切了
        AndroidWanLi:@mcp1993 具体是什么情况
      • 苏晴溪:程序猿的世界只有代码么?
      • KeiHongChan:学习学习
        AndroidWanLi:@Raymond_qi_kang 鼓励学习,鼓励打赏:smile:

      本文标题:Android 纯粹到一句代码即可启动的圆形进度条

      本文链接:https://www.haomeiwen.com/subject/efbnjttx.html