2010-11-16 205 views
1

我目前在基于不同GeoPoints的MapView上绘制线条以指示扇区。用下面的代码(这是在覆盖层中):在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

我没有看到你在哪里设置阿尔法。无论255是不透明的,它是不透明的。

仅供参考,我做一样的东西(在绘制地图叠加路径),这工作得很好绘制50%不透明,红线:

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

嗯,感觉挺傻的,现在...一些我读255的原因是完全透明的,而不是相同的... 奇怪的是,我实际上尝试polyPaint.setAlpha(100)并上升到255,根本没有注意到透明度的差异。现在,你的方式和setalpha的方式似乎工作= \ 无论如何,thx:P – shokora 2010-11-16 21:09:44