【问题标题】:How to catch a map panning | zooming finished event with Android SDK?如何捕捉地图平移 |使用 Android SDK 缩放完成事件?
【发布时间】:2012-07-16 04:34:11
【问题描述】:

我正在寻找一种在地图完成平移或缩放或平移和缩放时接收事件的方法。我使用的 SDK for Android 2.3.3 中的 MapActivity 不会触发这些事件。我尝试了MapChange 库,但是,它强制您在MapActivity 中使用Handler,以确保在UI 线程上处理UI 更新; more information.

问题:您知道Android Support Library 对此类事件的任何支持吗?通过使用FragmentActivity 而不是MapActivity - 我现在找不到替代解决方案。

可以在这里找到类似的问题:


编辑: MapChange 库是updated some hours ago。我会看看有什么改进。


编辑: MapChange 库已得到改进,现在工作更加可靠,是一个不错的选择!请查看 GitHub 项目以获取更多信息。不过,我将这个问题留了下来,因为我仍然对是否可以对现有组件做同样的事情感兴趣。

【问题讨论】:

    标签: android google-maps zooming drag mapactivity


    【解决方案1】:

    为什么使用 Handler 会有问题?您可以随时将 UI 更改发布到主线程,为什么不这样做呢?

    SO 上的某个人通过更改支持库代码找到了一种方法来让 Fragment 活动包含 MapView,但它对我来说太麻烦了,无法使用,我恢复为成熟的 Map 活动。

    【讨论】:

    • MapChange 中使用 Runnables 和 Handler 的方式在我看来有点开销。我想知道其他项目如何接收此类事件。
    【解决方案2】:

    您可以使用GoogleMap.OnCameraChangeListener 为不断变化的相机事件分配一个侦听器。 Google Maps Android API documentation 中讨论了处理该事件和其他事件。

    【讨论】:

      【解决方案3】:

      对于仍在寻找答案的人

      googleMap.setOnCameraIdleListener {
                      //Do your thing
                  }
      

      相机移动结束时调用

      【讨论】:

        猜你喜欢
        • 2011-04-03
        • 2020-03-13
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多