【发布时间】:2023-03-07 16:23:03
【问题描述】:
是否可以使用MapView同时处理缩放和平移事件?
Android 版 Google 地图应用允许在捏拉缩放手势进行时平移地图。这有助于在放大地图区域时进行微调。默认的MapView 似乎不支持这个。
我准备自己实现这个功能,但我更喜欢使用内置机制。
【问题讨论】:
是否可以使用MapView同时处理缩放和平移事件?
Android 版 Google 地图应用允许在捏拉缩放手势进行时平移地图。这有助于在放大地图区域时进行微调。默认的MapView 似乎不支持这个。
我准备自己实现这个功能,但我更喜欢使用内置机制。
【问题讨论】:
我使用Overlay 解决了这个问题。通过覆盖覆盖层的onTouchEvent() 并检测缩放和平移事件何时发生,可以并行处理这些事件。
对于遇到此问题的任何人,我已经发布了sample project based on my solution。
编辑:
新的Google Maps v2 库支持同时缩放和平移。除非需要自定义事件处理算法,否则我强烈建议升级到新库。
【讨论】:
moveCamera,当我使用scrollBy(平移)调用moveCamera,然后使用zoomBy(用于缩放)调用另一个moveCamera,它们似乎只是在“打架”对方第二招好像生效了?
animateCamera() 来解决您的问题 - 请参阅 this answer。