自定义viewAndroid知识Android开发

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

2017-07-10  本文已影响159人  橘子周二

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

运行效果图:

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自定义绘制测量和参数的学习,在有了思路后很快就实现出来了。

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

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

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

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

实际起点就是 padding


源码地址:github - CircleProgressView

上一篇下一篇

猜你喜欢

热点阅读