アプリのマップ ビューに塗りつぶされたポリゴンを描画しようとしています。何を試しても塗りつぶされません。ストロークを表示することはできますが、塗りつぶすことはできません。以下は、私のポリゴン クラスの draw メソッドです。オーバーレイをオーバーライドします。
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);
}
上記のコードは線を正しく描画しますが、塗りつぶされません。 canvas.drawPath(path, mPaint); の削除 塗りつぶしをそのままにしておくと、マップには何も表示されません。Paint.Style.STROKE を Paint.Style.FILL_AND_STROKE に設定してみました。私は完全に途方に暮れており、この時点で、それは私が見落としている単純なものだと考えています。