我目前正在基于不同地理点的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(应该是完全透明的),并且它无能为力,它完全opagaue。

有人知道我在做什么错吗?

有帮助吗?

解决方案

我看不到您在哪里设置Alpha。不管255不透明,它都是不透明的。

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

mPaint.setColor(Color.parseColor ("#88ff0000"));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top