2012-10-11 84 views
2

我通過正確傳遞經度和緯度參數來得到當前位置的MapView。但是我想在那張MapView圖片上畫自由手(即名字或線條等)。從那個我想要的用戶在該油漆上的圖像MapView的總圖像。 我該怎麼做?Android:如何在mapviews上繪製顏色?

當用戶如下所示送他的去路給其他用戶...

+0

@Hesham賽義德·我想不僅只是路徑和名稱等。我想使用的油漆選項 – NagarjunaReddy

回答

2

使用的覆蓋。 See this example Overlays

這裏的示例代碼:

public class overlayGeoPoints extends Overlay { 

    private GeoPoint geoPoint; 
    private int radius = 20; 

    @Override 
    public boolean onTap(GeoPoint geoPoint, MapView mapView){ 
      this.geoPoint = geoPoint; 
    } 

    @Override 
    public void draw(Canvas canvas, MapView mapView, boolean shadow) { 

     // put your logic here to draw on the overlay 
     // ie draw a circle 
     Projection projection = mapView.getProjection(); 
     Point point = new Point(); 
     projection.toPixels(geoPoint, point); 

     int px = point.x; 
     int py = point.y; 
     Paint paint = new Paint(paintSecondary.ANTI_ALIAS_FLAG); 
     hl.setColor(intColor); 
     canvas.drawCircle(px, py, radius, paint); 
     canvas.save(); 

    } 
} 

就在這個覆蓋添加到您的地圖。

編輯

這裏是一個循序漸進(通用):

地圖對象(圖)創建

// get a handle to the map overlays 
List<Overlay> overlays = mapView.getOverlays(); 

// reset overlays as necessary 
//overlays.clear(); 

// create your custom overly class 
overlayGeoPoints olay = new overlayGeoPoints(); 

// append overlay to map overlays 
overlays.add(olay); 

// tell the map object to redraw 
mapView.postInvalidate(); 
+0

從我使用已經獲得總地圖視圖逐項疊加...從那只是我想在該視圖上繪畫 – NagarjunaReddy

+0

嗨!從這我們可以肯定?像路徑和文本?幫我... –

+0

你不能直接在地圖上畫畫。你只能覆蓋地圖 - 你可以繪製任何你想要的東西 - 圖片,點,文字等... –

1

如果我理解正確的,你的問題後,你想捕捉嗡嗡聲,然後在地圖上顯示。

步驟:

  • 創建延伸覆蓋
  • 覆蓋onTouchEvent()得到的位置(X,Y)的用戶點擊和移動手指上一個新的類,將它們轉換爲GeoPoint對象,並添加geopoints到一個Path對象。撥打invalidate()即可獲得地圖redrwan。
  • 覆蓋onDraw()得出上述路徑的構建與canvas.drawPath()
  • 最後,添加疊加層到調用MapView.getOverlays()結束,以確保本覆蓋是第一次獲得觸摸事件。

祝你好運。

0
// This file is MapViewDemoActivity.java 
    import android.os.Bundle; 
    import android.view.View; 

    import com.google.android.maps.MapActivity; 
    import com.google.android.maps.MapView; 

     public class MapViewDemoActivity extends MapActivity { 
     private MapView mapView; 

     @Override 
      protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.mapview); 

     mapView = (MapView)findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); //display zoom controls 
    } 

     @Override 
     protected boolean isLocationDisplayed() { 
      return false; 
    } 

這就像是馬麗娟到有用的所有http://n3vrax.wordpress.com/2011/08/13/drawing-overlays-on-android-map-view/