Ho un MapView in un'attività e funziona perfettamente, la mappa mostra e risponde ai tocchi e posso estrarre facilmente la posizione. Tuttavia, questo gestore risponde anche al pizzico-zoom, quindi se un utente tenta di eseguire lo zoom-pizzico, l'app risponde come se toccassero (ed è molto confuso per loro).Come rispondere a un tocco su Android MapView, ma ignorare lo zoom pizzico?
Come posso rispondere ai tocchi su un MapView e riprendere solo i tocchi singoli, in particolare ignorando lo zoom-pizzico e i doppi tocchi?
Devo utilizzare OnTouchEvent() anziché OnTap()? In tal caso, come faccio a distinguere tra i diversi eventi di tocco e come accedo a GeoPoint?
Ecco il codice da dentro la mia MapActivity:
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean onTap(GeoPoint p, MapView map)
{
if (p!=null)
{
// Do stuff with the geopoint
return true; // We handled the tap
}
else
{
return false; // We didn't handle the tap
}
}
}
Potreste essere in grado di continuare ad usare onTap, che è stato progettato per rispondere solo quando gli elementi di sovrapposizione sono sotto controllo (in contrapposizione a qualsiasi punto della mappa), ed ancora impostato un tocco ascoltatore sulla MapView di ignorare pizzico, come questo: http://stackoverflow.com/questions/4626028/how-to-disable-pinch-in-android-mapview –
È interessante notare come trascinare la mappa. quindi Trascina non attiva onTap() ma tocca fa (come previsto) ma anche pizzica e zoom. Non è quello che mi sarei aspettato. –
Non voglio disabilitare pizzico e zoom, voglio che funzioni, voglio solo che la mia app riprenda anche onTap. –