今天需要在界面上画一个环状的扇形。研究一下,发现一个简单的办法就可以办到。记录一下。
直接上代码:
//设置一个目标正方形框。这个边长是内弧的直径。中心点即为圆心
RectF baseRectf = new RectF(600, 600, 800, 800);
Path path = new Path();
//画一个弧。注意,角度的设置。这样设置,正方型的边长就是直径。方便计算。
path.addArc(baseRectf, -30, 60);
//向外扩张这个正方形。此时正方形的边长是外弧的直径。
baseRectf.inset(-100, -100);
path.arcTo(baseRectf, 30, -60); //注意角度的设置要反转一下。
path.close();
这样就可以生成图形
然后,可以通过Matrix,围绕圆心旋转即可。省去了很多的计算工作量。(700, 700)即为圆心。
Matrix m = new Matrix();
m.postRotate(60, 700, 700);
Path path1 = new Path(path);
path1.transform(m);
m.reset();
m.postRotate(-60, 700, 700);
Path path2 = new Path(path);
path2.transform(m);
非常简单方便。不需要复杂的计算角度和画线。