1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

CustomView in MapView darstellen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Neeldarax, 06.04.2011.

  1. Neeldarax, 06.04.2011 #1
    Neeldarax

    Neeldarax Threadstarter Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hallo zusammen,

    ich versuch mich gerade mit Obtaining User Location | Android Developers.

    Mein Problem ist, dass ich ein custom View in die Map einbauen will, so wie es zB Latidute macht:
    [​IMG]

    Da seht ihr ein Foto von meiner Tastatur in einer Art Sprechblase auf ein GeoPoint ausgerichtet.
    Kann mir wer verraten nach was ich Suchen muss, um sowas zu verwirklichen?

    Ich nutze derzeit com.google.android.maps.Overlay um Drawables bzw. Bitmaps auf die Karte zu bringen.

    regards
     
  2. mago, 06.04.2011 #2
    mago

    mago Junior Mitglied

    Beiträge:
    33
    Erhaltene Danke:
    4
    Registriert seit:
    30.04.2010
    Phone:
    HTC Desire
    Hallo,

    ich versuche mal zu beschreiben, wie ich das gemacht habe.

    Code:
    public class LocationMapView extends MapView {
               [...]
        public void setLocationMarker(GeoPoint point) {
                this.getOverlays().clear();
                OverlayItem overlayitem = new OverlayItem(point, "It's me", "I'm Here!");
                Drawable drawable = this.getResources().getDrawable(R.drawable.marker);
                locOverlay = new LocationOverlay(drawable, this.getContext());
                locOverlay.addOverlay(overlayitem);
                this.getOverlays().add(locOverlay);
                this.getController().animateTo(point);
                this.getController().setCenter(point);
        }
    }
    
    
    Code:
    public class LocationOverlay extends ItemizedOverlay {
        private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
        private Context mContext;
        
        public LocationOverlay(Drawable defaultMarker, Context context) {
            super(boundCenterBottom(defaultMarker));
            mContext = context;
        }
    
        @Override
        protected boolean onTap(int index) {
            OverlayItem item = mOverlays.get(index);
            AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
            dialog.setTitle(item.getTitle());
            dialog.setMessage(item.getSnippet());
            dialog.show();
            return true;
        }
    
        @Override
        protected OverlayItem createItem(int idx) {
            return mOverlays.get(idx);
        }
    
        @Override
        public int size() {
            return mOverlays.size();
        }
    
        public void addOverlay(OverlayItem overlay) {
            mOverlays.add(overlay);
            populate();
        }
    }
    
     

Diese Seite empfehlen