package com.arman.osmdroidmapsforge.map.overlays; import org.osmdroid.bonuspack.overlays.InfoWindow; import org.osmdroid.bonuspack.overlays.Marker; import org.osmdroid.bonuspack.overlays.OverlayWithIW; import org.osmdroid.views.MapView; import android.location.Location; import android.text.Html; import android.text.Spanned; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import com.arman.osmdroidmapsforge.R; public class CurrentPosInfoWindow extends InfoWindow{ private Marker marker; private Location location; public CurrentPosInfoWindow(int layoutResId, final MapView mapView, Marker marker, Location location) { super(layoutResId, mapView); this.marker = marker; this.location = location; mView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { //default behavior: close it when clicking on the bubble: if (e.getAction() == MotionEvent.ACTION_UP) close(); return true; } }); } @Override public void onOpen(Object item) { OverlayWithIW overlay = (OverlayWithIW)item; String title = overlay.getTitle(); if (title == null) title = ""; ((TextView)mView.findViewById(R.id.bubble_title )).setText(title); String snippet = overlay.getSnippet(); if (snippet == null) snippet = ""; Spanned snippetHtml = Html.fromHtml(snippet); ((TextView)mView.findViewById(R.id.bubble_description )).setText(snippetHtml); TextView accuracyTxtView = (TextView)mView.findViewById(R.id.bubble_accuracy); accuracyTxtView.setText("Accuracy" + Math.round(location.getAccuracy()) + "m"); } @Override public void onClose() { //by default, do nothing } }