本例中用两种方法实现圆形进度条,一种是得到进度后计算出扇形面积,然后画出相应的扇形;另一种方法是根据进度计算水平的出面积,因为是水平的方式实现进度,所以不能直接画出,需要先画一个扇形,然后再在扇形上方画一个三角形的方式实现,话就不多说了,
其中效果图如下:
关键代码如下:
扇形进度条
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// mTempRect.set(0, 0, mDrawableSize, mDrawableSize);
// mTempRect.offset((getWidth() - mDrawableSize) / 2, (getHeight() - mDrawableSize) / 2);
// mTempRect.set(0, 0, mInnerSize, mInnerSize);
// mTempRect.offset((getWidth() - mInnerSize) / 2, (getHeight() - mInnerSize) / 2);
mTempRectF.set(-0.5f, -0.5f, mInnerSize + 0.5f, mInnerSize + 0.5f);
mTempRectF.offset((getWidth() - mInnerSize) / 2,