有图有真相,先来看看效果图:
其实基本原理并不复杂,无非就是根据当前进度来计算对应的弧度,然后绘制出圆弧即可。
主要的难点在于进度条按钮(图标,thumb)的绘制,需要根据当前进度来计算出图标的坐标,然后将icon绘制到合适的坐标上。算法可以参考我的上一篇博客求圆上某点旋转一定弧度之后的新坐标
下面来看看对应的布局文件:
<com.pang.robot.facelogindemo.view.CircleProgress
android:id="@+id/tasks_view"
android:layout_width="223dp"
android:layout_height="223dp"
app:circleColor="@color/white"
app:radius="50dip"
app:ringBgColor="@color/white2"
app:ringColor="@color/colorRed"
app:strokeWidth="10dip"
app:thumb