Reputation: 1696
My application includes a calculatePosition(), which draws four circles:
private void calculatePosition(){
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(10);
float ratio = (float) (640/3.45);
float radiusB1 = Calculations.convertscale(scale, position[0] * ratio);
float radiusB2 = Calculations.convertscale(scale, position[1] * ratio);
float radiusB3 = Calculations.convertscale(scale, position[2] * ratio);
float radiusB4 = Calculations.convertscale(scale, position[3] * ratio);
canvas.drawCircle(broadCaster1x, broadCaster1y, radiusB1, paint);
canvas.drawCircle(broadCaster2x, broadCaster2y, radiusB2, paint);
canvas.drawCircle(broadCaster3x, broadCaster3y, radiusB3, paint);
canvas.drawCircle(broadCaster4x, broadCaster4y, radiusB4, paint);
}
I want to know whether it is possible in Android to fill intersecting areas between two circles as shown in the figure below. If yes, is there any basic example of how to obtain it ?.
Upvotes: 0
Views: 833
Reputation: 5411
Use 'Canvas.clipPath'
For Example:
Path pathA = new Path();
pathA.addCircle(xCenterA, yCenterA, radiusA, Direction.CW);
Path pathB = new Path();
pathB.addCircle(xCenterB, yCenterB, radiusB, Direction.CW);
canvas.clipPath(pathA);
canvas.clipPath(pathB, Region.Op.DIFFERENCE);
Upvotes: 1