1

現在、セクターを示すために、さまざまなジオポイントに基づいて MapView に線を引いています。次のコードを使用 (これはオーバーレイ内にあります):

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
    for(Polygon polygonTemp : polygonList)
    {           
        Path p = new Path();
        Projection projection = mapView.getProjection();

        boolean firstTime = true;
        for(GeoPoint geoPoint : polygonTemp.getGeoPointList())
        {
            Point drawPoint = new Point();
            projection.toPixels(geoPoint, drawPoint);

            if(firstTime)
            {
                p.moveTo(drawPoint.x, drawPoint.y);
                firstTime = false;
            }
            else
            {
                p.lineTo(drawPoint.x, drawPoint.y);
            }
        }
        p.setFillType(Path.FillType.EVEN_ODD);

        Paint polyPaint = new Paint();
        polyPaint.setStrokeWidth(1);
        polyPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        polyPaint.setAntiAlias(true);
        polyPaint.setColor(Color.parseColor(polygonTemp.getColor()));
        canvas.drawPath(p, polyPaint);
        firstTime = true;
    }
    super.draw(canvas, mapView, shadow);
}

問題は、ある程度の透明度で塗りつぶしたいので、塗りつぶされたセクターの下にマップが表示されることです。polyPaint.setAlpha() を 255 (完全に透明にする必要があります) に設定しようとしましたが、何もしません。完全に不透明です。

誰が私が間違っているのか知っていますか?

4

1 に答える 1

1

アルファを設定している場所がわかりません。255 は透明ではありませんが、不透明です。

参考までに、私は同じことを行っています(マップオーバーレイにパスを描画しています)。これは、50%の不透明な赤い線を描画するのにうまく機能します:

mPaint.setColor(Color.parseColor ("#88ff0000"));
于 2010-11-16T19:36:08.453 に答える