2011-07-01 68 views
2

我用下面的代碼覆蓋顯示顯示上點擊疊加

p = new GeoPoint((int) (addresses.get(0).getLatitude() * 1E6), 
        (int) (addresses.get(0).getLongitude() * 1E6)); 

      controller = mapview.getController(); 
      controller.setZoom(12); 

      MapOverlay mapOverlay = new MapOverlay(map.this, p); 
      List<Overlay> listOfOverlays = mapview.getOverlays(); 
      listOfOverlays.add(mapOverlay); 

      controller.animateTo(p, new Runnable() { 
       public void run() { 
        controller.setZoom(12); 
       } 
      }); 
      mapview.invalidate(); 

,並在覆蓋繪製文件舉杯如下...

super.draw(canvas, mapView, shadow); 
    Point screenPts = new Point(); 
    mapView.getProjection().toPixels(p, screenPts); 

    Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.overlay); 
    canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 32, null); 

誰能請告訴我,當我點擊疊加層時,需要做些什麼才能顯示敬酒?

回答

0

覆蓋覆蓋的方法here並調用Toast。

+0

onTap方法適用於整個mapview。我希望敬酒應該只顯示在特定的疊加而不是整個地圖上。 – Antrromet

+0

活動頂部顯示「Toast」:我不確定自己完全明白自己想要做什麼,但如果覆蓋Overlay的「onTap」方法,則任何點擊疊加層都會顯示Toast。這不是你想要的嗎? – Femi

+0

啊。您想要使用ItemizedOverlay(請參閱http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/ItemizedOverlay.html),然後覆蓋'onTap(int index )'方法(請參閱http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/ItemizedOverlay.html#onTap(int))。 – Femi

0

在這裏,我給了我以前給出的答案的鏈接,你應該閱讀與評論的答案,然後你會發現你的答案。

if(moreArrowTappedEvent(mapView,p) && isRemovePriorPopup) { 
Toast.makeText(this.mapLocationViewer.getContext(), "I am hit", Toast.LENGTH_LONG).show(); 
flag = true; mapView.invalidate(); 
mHandler.postDelayed(new Runnable() { 
@Override public void run() { 

// TODO自動生成方法存根 標誌=假; mapView.invalidate(); 200});
}

Custom tap window on Google Map

我已經做了你想要的。

我希望這是幫助。