Android Google Maps如何监听Zoom缩放等级变化?
Google Maps 缩放等级监听正确实现方案
你之前使用的OnCameraChangeListener已在Google Maps Android SDK v9.2.0及之后版本废弃,官方推荐使用相机状态回调类替代,正确实现如下:
基础实现(实时监听缩放变化)
首先在类内部声明成员变量记录上一次的缩放等级:
private var lastZoom = -1f
在获取到GoogleMap实例(通常是onMapReady回调内)后设置监听:
mMap?.setOnCameraMoveListener { val currentZoom = mMap.cameraPosition.zoom if (currentZoom != lastZoom) { lastZoom = currentZoom // 此处添加自定义逻辑 Toast.makeText(this@你的Activity名称, "Zoom $currentZoom", Toast.LENGTH_LONG).show() } }
可选实现(仅监听缩放结束后状态,性能更优)
如果不需要跟踪缩放过程的实时变化,仅需要相机移动停止后获取最终缩放等级,可以使用OnCameraIdleListener:
mMap?.setOnCameraIdleListener { val currentZoom = mMap.cameraPosition.zoom if (currentZoom != lastZoom) { lastZoom = currentZoom // 此处添加自定义逻辑 } }
注意事项
- 页面销毁时可手动置空监听避免内存泄漏:
mMap?.setOnCameraMoveListener(null)、mMap?.setOnCameraIdleListener(null) - Google Maps默认缩放等级范围为1(全球视角)~21(街景级视角),部分区域支持最高22级
内容的提问来源于stack exchange,提问作者Mina Rezkalla
相关产品推荐
相关产品推荐

