【发布时间】:2011-06-15 22:01:59
【问题描述】:
我在一个活动中有一个 MapView,它工作正常,地图显示,它响应点击,我可以轻松提取位置。但是,这个处理程序也会响应捏合缩放,因此如果用户尝试捏合缩放,应用会做出响应,就像他们点击了一样(这让他们非常困惑)。
我怎样才能响应 MapView 上的点击而只选择单击,特别是忽略捏缩放和双击?
我是否需要使用 OnTouchEvent() 而不是 OnTap()?如果是,我如何区分不同的触摸事件,以及如何访问 GeoPoint?
这是我的 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
}
}
}
【问题讨论】:
-
你也许可以继续使用 onTap,它被设计为仅在点击覆盖项目时响应(而不是地图上的任何位置),并且仍然在 MapView 上设置一个触摸侦听器以忽略捏合,像这样:stackoverflow.com/questions/4626028/…
-
有趣地拖动地图就可以了。所以 Drag 不会触发 onTap() 但点击会(如预期的那样)但也会捏和缩放。这不是我所期望的。
-
我不想禁用捏合和缩放功能,我希望它能够工作,我只想让我的应用程序也能使用 onTap。
标签: android