默认情况下,GoogleMap不提供地图拖动开始和拖动停止的事件.我已经报告了该问题 这里。
我想做
custom
handler
将使用普通的
onTouch
活动并将其与
setOnCameraChangeListener
结合
但是我找不到如何访问
onTouch
的方法
GoogleMap
事件
目的.它没有提供这种
callback
我想知道如何在 Google Map API v2中处理地图的onTouch事件
最新回答
- 2021-1-111 #
- 2021-1-112 #
有一种更简单的方法可以在
onCameraMoveStarted
上处理案件 这样的听众下面的代码段
@Override public void onCameraMoveStarted(int reason) { if (reason == OnCameraMoveStartedListener.REASON_GESTURE) { Toast.makeText(this, "The user gestured on the map.", Toast.LENGTH_SHORT).show(); } else if (reason == OnCameraMoveStartedListener .REASON_API_ANIMATION) { Toast.makeText(this, "The user tapped something on the map.", Toast.LENGTH_SHORT).show(); } else if (reason == OnCameraMoveStartedListener .REASON_DEVELOPER_ANIMATION) { Toast.makeText(this, "The app moved the camera.", Toast.LENGTH_SHORT).show(); } }
相关问题
- android:Google Maps Fragment在片段内返回nullandroidgooglemapsandroidfragments2021-01-11 23:00
- google maps:Android:如何捕获GPS位置图像androidgooglemapsgps2021-01-11 01:28
- Android Google Maps,如何使每个Marker Infowindow打开不同的Activity?androidgooglemaps2021-01-10 13:57
- 如何实现超级地图之类的可拖动地图,使用更改位置进行更新androidgooglemaps2021-01-10 04:54
以下是确定拖动开始和结束事件的一种可能的解决方法:
您必须扩展
SupportMapFragment
或MapFragment
.在onCreateView()
你必须包裹你的MapView
在定制的FrameLayout
中 (在下面的示例中是TouchableWrapper
类 ),您可以在其中拦截触摸事件并识别是否点击了地图.如果你的onCameraChange
被调用,只需检查是否按下了地图视图(在下面的示例中,这是变量mMapIsTouched
)。示例代码:
更新1:
return original created view in
getView()
使用
dispatchTouchEvent()
代替onInterceptTouchEvent()
自定义FrameLayout:
在您自定义的MapFragment中:
在您的相机更改回调方法中: