在MapView上绘制透明

时间:2010-11-16 19:24:45

标签: android android-canvas transparency android-mapview draw

我目前正在基于不同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(它应该是完全透明的)并且它没有做任何事情,它完全是不相干的。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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

mPaint.setColor(Color.parseColor ("#88ff0000"));