1

我目前正在根据不同的 GeoPoints 在 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

我没有看到你在哪里设置 alpha。不管 255 不透明,它是不透明的。

仅供参考,我正在做相同的事情(在地图叠加层上绘制路径),这适用于绘制 50% 不透明的红线:

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