Android-画个你想要的圆形进度条

啊哈,最近又闲下来了。但一直有个事儿没放下,那就是项目中用到的一个开源控件–圆形进度条。虽然样式和UI设计图完全一样了,但是体验我觉得还能提升,加个动画什么的。反正闲了点干脆自己写吧。

运行效果图:

《Android-画个你想要的圆形进度条》 circleProgressView.gif

属性使用:

<rg.funinglayout.views.CircleProgressView
        android:id="@+id/ac_CircleProgressView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        app:cp_underColor="@color/grey300"
        app:cp_progressColor="@color/colorPrimary"
        app:cp_progress="10"
        app:cp_reverseAngle="true"
        app:cp_max="100"
        app:cp_textColor="@color/colorPrimary"
        app:cp_textSize="25sp"
        app:cp_startAngle="270"
        app:cp_strokeWidth="15dp"
        app:cp_padding="5dp"
        app:cp_drawText="true"
        />

有了之前对View自定义绘制测量和参数的学习,在有了思路后很快就实现出来了。

  • 主要就三个模块:
    1.弧角度计算绘制
    2.文字绘制
    3.进度切割动画
  • 踩坑:

一开始在绘制RectF边界时使用了坐标确定位置,后来发现这是多余的,也是错误的。

drawArc在在设置边界RectF时,只用考虑绘制面积,无需考虑绘制坐标。

界限面积公式 :S = getMeasureWidth() * getMeasureHeight()

也就是说 rectF.top,rectF.letf在无边距时就是 0 。

实际起点就是 padding

源码地址:github – CircleProgressView

    原文作者:_RANGO
    原文地址: https://www.jianshu.com/p/477ea534b236
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞