Android Round Progress Bar

自定义View RoundProgressBar 的简单实现

最近有一个小的交互效果需要实现,就是一个圆环的ProgressBar,可以设计进度而展示不同的进度。虽然这个自定义View 用搜索引擎可以搜出一大堆各式的实现方式,但是我这里提供一个简洁的loading,希望能给你一些参考。

注意

我们这里使用Canvas来绘制出圆环的加载效果,但要注意的地方如下:

1
2
3
4
5
6
mPaint = new Paint();
mPaint.setAntiAlias(true); // 抗锯齿
mPaint.setStrokeWidth(mCircleWidth);
mPaint.setStyle(Paint.Style.STROKE); // 设置画笔样式
mPaint.setStrokeCap(Paint.Cap.ROUND); // 设置线条为圆形
mPaint.setColor(mCircleColor);

抗锯齿一定要开启(不然容易被UE MM拍回来 -.-)
线条设置为ROUND来实现设计稿中两端为原型的效果

1
private static final int DEFAULT_ZERO_DEGREE = -90; // 椭圆默认0°角为三点钟方向开始,默认-90°将调整为12点钟方向

其中利用 @see Canvas.drawArc 方法的初始的0°角在三点钟的方向,所以这里给了一个默认的-90°来调整一下初始位置
下面给出Github的连接,并附有效果图及源码

Github