在MapView上绘制透明
-
11-10-2019 - |
题
我目前正在基于不同地理点的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"));
不隶属于 StackOverflow