在开发项目的时候,需要自定义view实现下面的圆盘效果。
中间圆盘好绘制,周围扇形绘制的时候,发现使用drawArc方式,Paint设置宽度以后,扇形就不标准了,因为画笔宽度占了空间。因此采用path方式绘制扇形区域。
步骤:
1. 先绘制出一条弧线,这里我先绘制出内弧线
最近绘制扇形,发现drawArc方式,paint设置宽度以后,扇形就不标准了。所以采用path绘制一个扇形区域。
// 画布宽高
val width = 200F
val height = 200F
//圆心坐标
val circlePoint = PointF(width/2,height/2)
//内弧rectf
val mSmallRectF = RectF(circlePoint.x - 40,circlePoint.y - 40,circlePoint.x + 40,circlePoint.y + 40)
//外弧rectf
val mBigRectF = RectF(circlePoint.x - 80,circlePoint.y - 80,circlePoint.x + 80,circlePoint.y + 80)
// 1. 先做出一条弧线,我这里设定小矩形,先做出内弧线。
path.addArc(mSmallRectF,0,90f)
// 2. 做出另一条弧线,我这里做出外弧线。
path.arcTo(mArcRectF,90,-90f)
// 3. 最后关闭path。
path.close()
// 使用canvas绘制path。
canvas.drawPath(path, mArcPaint)
这里有个需要注意的点,第二条弧线,要和第一条弧线相反的方向绘制。否则,最后绘制的图形就变了。比如: 第一条弧线是从0到90。第二条弧线就要从90到0。