*23 Jan 2015*
<div class="posthaven-post-body">
If there is a cleaner way to do it, please share :)
Override the default MapView with your own implementation; Override the onInterceptTouchEvent method; Check if the last event was also a click and happened close by (say in the last 250ms);
If so, it's a double tap; do whatever you want (in this case I zoom in on the last clicked point); If not, ignore :)
Here's the code (Sorry for the formatting mess, but... :)): import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import com.google.android.maps.MapView;
public class MyMapView extends MapView {
private long lastTouchTime = -1;
public MyMapView(Context context, AttributeSet attrs) {
super(context, attrs); }
@Override public boolean onInterceptTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
long thisTime = System.currentTimeMillis(); if (thisTime - lastTouchTime \< 250) {
// Double tap this.getController().zoomInFixing((int) ev.getX(), (int) ev.getY()); lastTouchTime = -1;
} else {
// Too slow :) lastTouchTime = thisTime; } }
return super.onInterceptTouchEvent(ev); } }
</div>
[[tags/computers|computers]] [[tags/software_development|software_development]] [[tags/tips|tips]]