Google Maps Android API v2 - 恢复地图状态

2023-12-23

我正在使用 Google Maps Android API v2 构建一个非常简单的地图应用程序。正如预期的那样,当用户离开然后返回应用程序时,他们在位置、缩放等方面所做的任何更改都会随着 Activity 被销毁并重新创建而丢失。

我知道我可以以编程方式保存地图的相机状态(也许作为共享首选项中的值)onPause()并将其恢复到onResume(),但是 API 是否有任何内置机制可以在活动启动之间保留地图状态?


我不认为你可以,但你可以拯救你的CameraPosition其中有你的位置/缩放/角度...

http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.html http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.html

所以你可以在你的onDestroy这得到了CameraPosition从您的地图并将其存储在您的SharedPreferences。在你的onCreate()你重新创建你的CameraPosition来自SharedPreferences(在你的地图实例化之后)。

// somewhere in your onDestroy()
@Override
protected void onDestroy() {
    CameraPosition mMyCam = MyMap.getCameraPosition();
    double longitude = mMyCam.target.longitude;
    (...)

    SharedPreferences settings = getSharedPreferences("SOME_NAME", 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putDouble("longitude", longitude);
    (...) //put all other values like latitude, angle, zoom...
    editor.commit();
}

in your onCreate()

SharedPreferences settings = getSharedPreferences("SOME_NAME", 0);
// "initial longitude" is only used on first startup
double longitude = settings.getDouble("longitude", "initial_longitude");  
(...)  //add the other values

LatLng startPosition = new LatLng() //with longitude and latitude


CameraPosition cameraPosition = new CameraPosition.Builder()
.target(startPosition)      // Sets the center of the map to Mountain View
.zoom(17)                   // Sets the zoom
.bearing(90)                // Sets the orientation of the camera to east
.tilt(30)                   // Sets the tilt of the camera to 30 degrees
.build();                   // Creates a CameraPosition from the builder

创建一个新的cameraPosition并为其设置动画。当然,地图此时已实例化

 map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Maps Android API v2 - 恢复地图状态 的相关文章

  • 无法获取项目的未知属性“assembleRelease”

    将 Android Studio 更新到版本 2 2 并将 gradle 插件更新到 2 2 0 后 出现以下错误 错误 32 1 评估项目 jobdispatcher 时出现问题 无法获取 org gradle api Project 类
  • Kotlin Android Firebase 数据库哈希映射转换为类

    我正在尝试从 firebase 数据库获取数据 断点显示它正在获取数据 但看起来我没有正确地将其分配给我的班级 这会导致此异常 java lang ClassCastException 无法将 java util HashMap 转换为 班
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • Android 中图像字节表示的每像素字节数

    我目前正在编写一个Android应用程序 需要在其中使用OCR 为了实现这一点 我将 Tesseract 与tesseract android tools 项目 http code google com p tesseract androi
  • 无法接收UsbManager.ACTION_USB_DEVICE_ATTACHED/UsbManager.ACTION_USB_DEVICE_DETACHED的广播Intent

    我最近正在编写一个 USB 主机应用程序 但它被卡住了 因为我无法检测到设备连接 分离事件 我遵循了编码说明http developer android com guide topics connectivity usb host html
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • 何时调用 glMatrixMode()

    我所关注的大多数 Android OpenGL ES 教程都有其 onSurfaceChanged 函数 如下所示 public void onSurfaceChanged GL10 gl int width int height gl g
  • Android中如何使用intent加载本地html页面?

    我的 asset 目录中有一个 html 文件 我必须使用 Intent 将其加载为浏览器应用程序 这是我的代码 但它不起作用 startActivity new Intent Intent ACTION VIEW Uri parse fi
  • 本地管理的广播接收器泄漏?

    当应用程序被系统杀死时 本地 即使用 LocalBroadcastManager 管理 BroadcastReceiver 是否有可能泄漏 我需要它的具体用例是我想在活动的 onCreate onDestroy 中注册 注销 Broadca
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • onStart() 到底做了什么? - 安卓[重复]

    这个问题在这里已经有答案了 一段时间以来 我一直想知道 onStart 函数在 android 生命周期中的确切作用 网上的大多数资源只是说 它在您的活动在屏幕上可见之前被调用 但到目前为止我所做的应用程序我从未使用过onStart 我在
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • Android SDK WebView调用Activity

    我试图在单击 WebView 组件内的链接时启动活动 我的Webview已加载到里面Main java我想启动SubActivity java当点击网站内的链接时Main java 另外 如何将参数传递给此活动 Example inspec
  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • android.view.WindowLeaked - 使用对话框和新意图时

    我已经尝试了 stackoverflow 上提供的所有可能的解决方案 但我仍然在 logcat 中遇到此错误 活动 com xyz MainActivity 泄露了最初在此处添加的窗口 com android internal policy

随机推荐

  • Callkit - 如果从后台开始通话则没有音频

    从 iOS 13 3 1 开始出现这种情况 在我的应用程序中 我使用 Callkit WebRTC 建立 VOIP 连接 我总是能够毫无问题地建立连接 但是 从 13 3 1 开始 如果应用程序不在前台 我将无法启动 Callkit 调用
  • 来自特定网卡的 UDP 多播

    我正在寻找一些网络专家来帮助我解决问题 我有很多计算机运行我的软件 该软件使用 UDP 多播 如果计算机仅连接到一个网络 网络 A 则此方法可以正常工作 我的计算机 也运行上述软件 将在端口 XXXX 上侦听多播 这台计算机有两个网卡 当我
  • 如何缓存 Spring Data JPA 投影

    我正在使用 Spring Data JPA 存储库运行 Spring Boot 1 5 1 我已经在我的用户存储库中添加了一个方法 该方法使用 JPA 投影 UserProfile 效果很好 我现在希望在我的服务层中缓存该方法的结果 该层应
  • 从 Apache Spark 中的架构获取数据类型列表

    我在 Spark Python 中有以下代码 用于从 DataFrame 的架构中获取名称列表 该代码工作正常 但如何获取数据类型列表 columnNames df schema names 例如 类似 columnTypes df sch
  • 使用 NAudio 在 C# 中播放 ohLibSpotify pcm 数据流

    我正在尝试播放从 ohLibSpotify c 库提供的原始 pcm 数据 https github com openhome ohLibSpotify https github com openhome ohLibSpotify 我在以下
  • extjs:如何在列渲染器中使用ajax调用?

    我现在得到的是这样的 renderer function value var ret var conn new Ext data Connection conn request method POST url rsdBackend para
  • SOAP XML WS-Security 签名验证

    我能够使用 WS Security 签名的证书来签署 SOAP XML 但我无法验证其签名 验证签名时会导致异常 我们将不胜感激 希望提供一些帮助来解决该问题 SOAP 封装的 WS Security 签名 https docs oracl
  • 单例的实例类型与类名?

    据我了解 instancetype向编译器声明该方法的返回类型与接收消息的类相同 传统上 我总是声明我的单例初始值设定项 并将类名显式设置为返回类型 interface MyClass NSObject MyClass sharedInst
  • 使用jquery在ul中添加li元素

    我尝试制作简单的待办事项列表 这是我的 html 代码
  • jQuery UI 对话框关闭时刷新父页面

    因此 每次关闭 jQuery UI 中的特定对话框时 我都希望刷新父页面 我怎样才能做到这一点 jQuery 代码 document ready function var dlg createTeam dialog title Create
  • 在类构造函数中实例化供应商类

    在我的 CakePHP 2 应用程序中 我有这样的供应商 我需要在我的控制器类中创建此供应商类的实例 所以我将在控制器的不同功能中使用该实例 App import Vendor fancyVendor array file gt fancy
  • Emacs 中的文本转语音

    我不是瞎子 我只是想有一种方法让我的 Windows 机器大声读取缓冲区的内容 以下是基本要求 读取任何英文文本缓冲区 随时暂停阅读并随时恢复 而不是当有人走进我的办公室时等待几分钟等待大缓冲区完成 调整播放时的读回速度 突出显示当前正在阅
  • 特征:矩阵到四元数和后面有不同的结果

    我使用 Eigen 库将矩阵转换为四元数 但是当我将其中一个矩阵转换为四元数并将其烧回时 它变成了另一个矩阵 即单位矩阵 我使用的旋转矩阵是从变换矩阵分解而来的 Eigen Matrix3f R3d R topLeftCorner lt 3
  • 如何使用 WPF 中的资源图标?

    我有一个作为资源嵌入的 ico 文件 构建操作设置为资源 我正在尝试创建一个 NotifyIcon 如何引用我的图标 notifyIcon new NotifyIcon notifyIcon Icon my icon file is cal
  • 理解php中的浮点数

    我知道这些问题可能会被很多人问到 但从我的阅读和测试来看 它让我有点困惑 而且我所做的很多阅读让我更加困惑 因为它非常复杂 有些人似乎对简单的比较有问题 但我自己没有问题 例如 num1 27 64 num2 27 64 if num1 n
  • 重新部署 JRebel 的替代方案 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 JRebel 允许重新部署新编译的代码 而无需重新启动应用程序 我想知道是否有任何替代方案 免费 这FAQ http zeroturnar
  • angularjs中的transformRequest是什么

    我有一个代码 transformRequest function obj var str for var p in obj str push encodeURIComponent p encodeURIComponent obj p ret
  • partykit:将终端节点箱线图更改为显示平均值和标准差的条形图

    我在 R 中创建了一个回归树 这是代码 tree lt rpart y method anova minsplit 20 minbucket 20 maxdepth 3 data foo plot as party tree termina
  • 使用 CUPS 或其他框架从 iOS/iPad 打印到 Epson TM-T88V 收据打印机

    有谁知道如何获得CUPS运行于iOS 我们正在尝试打印到网络Epson收据打印机 TM T88V 从 iPad 使用CUPS或其他方法 但我们在让 CUPS 在 iOS 上运行时遇到了障碍 我知道这是可以做到的 因为 iPad 应用程序已经
  • Google Maps Android API v2 - 恢复地图状态

    我正在使用 Google Maps Android API v2 构建一个非常简单的地图应用程序 正如预期的那样 当用户离开然后返回应用程序时 他们在位置 缩放等方面所做的任何更改都会随着 Activity 被销毁并重新创建而丢失 我知道我