2010-11-16 111 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