我目前正在基于不同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(它应该是完全透明的)并且它没有做任何事情,它完全是不相干的。
任何人都知道我做错了什么?
答案 0 :(得分:1)
我没看到你在哪里设置alpha。无论255是不透明的,它都是不透明的。
仅供参考,我正在做相同的事情(在地图叠加上绘制路径),这适用于绘制50%不透明的红线:
mPaint.setColor(Color.parseColor ("#88ff0000"));