AndroidAndroid 实用控件

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

2016-07-26  本文已影响1098人  AndroidWanLi

前言#


最近群里有人说他们在项目中有实现圆形进度的需求,但是对于自定义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界面中的图片动画是怎么实现的,多个元素一起执行动画又怎么实现。关于这个问题,不知道有多少人需要了解?

结束#


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

上一篇下一篇

猜你喜欢

热点阅读