I am trying to draw a filled polygon on a map view in my app. No matter what I have tried it will not draw filled in. I can get the strokes to show up but I can not get it to fill. Below is the draw method of my polygon class. It overrides overlays.
public void draw(Canvas canvas, MapView mapv, boolean shadow) { super.draw(canvas, mapv, shadow); Paint mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE); mPaint.setColor(Color.BLACK); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setStrokeWidth(6); Paint mPaintFill = new Paint(); mPaintFill.setStyle(Paint.Style.FILL); mPaintFill.setColor(Color.GREEN); Path path = new Path(); GeoPoint start = route.get(0); for (int i = 1; i < route.size(); ++i) { Point p1 = new Point(); Point p2 = new Point(); Projection projection = mapv.getProjection(); projection.toPixels(start, p1); projection.toPixels(route.get(i), p2); path.moveTo(p2.x, p2.y); path.lineTo(p1.x, p1.y); start = route.get(i); } canvas.drawPath(path, mPaint); canvas.drawPath(path, mPaintFill); //canvas.clipPath(path, Op.DIFFERENCE); }
The above code for me will draw the lines correctly but it doesn t get filled in. Removing canvas.drawPath(path, mPaint); and just leaving the fill one results in nothing showing on the map. I have even tried setting Paint.Style.STROKE to Paint.Style.FILL_AND_STROKE. I am at a complete loss and at this point am thinking it is something simple I am over looking.