老规矩,先上效果图:
简要说一下实现原理:
1.自定义view,继承View
2.onDraw里面绘制圆形并填充
3.已知圆形总面积,则可根据进度比率(假设最大进度值为100)计算蓝色面积
4.通过圆形、三角形、扇形面积,角度等几何关系可以求解蓝色部分沿竖直直径方向的高度(具体可参考下图)
5.绘制相关几何图形,填充适当颜色
作为一个控件,目前还只是基本功能,些许细节还不够完美,后面再继续完善和扩展,源码地址:RoundAreaProgressBar。
时间: 2024-11-12 18:49:43