Android 如何将谷歌地图缩放级别设置为用户从其他活动返回时选择的状态
我在刷新地图时遇到问题。我想在从其他活动返回时阻止google地图刷新 我使用共享首选项存储缩放计算,但它不起作用 因此,如果有人对此有想法,请回复 我用于捕捉缩放计算的侦听器Android 如何将谷歌地图缩放级别设置为用户从其他活动返回时选择的状态,android,google-maps,zooming,Android,Google Maps,Zooming,我在刷新地图时遇到问题。我想在从其他活动返回时阻止google地图刷新 我使用共享首选项存储缩放计算,但它不起作用 因此,如果有人对此有想法,请回复 我用于捕捉缩放计算的侦听器 mMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition position) { // if
mMap.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition position) {
// if (position.zoom != currentZoom) {
currentZoom = position.zoom; // here you get zoom level
Log.v("Getting Zoom level", String.valueOf(currentZoom));
getzoomvalue = currentZoom;
savePreferences("Zoom_value", getzoomvalue);
// SharedPreferences sharedPreferences = PreferenceManager
// .getDefaultSharedPreferences(CurrentLocation.this);
// float getcurrentZoom =
// sharedPreferences.getFloat("Zoom_value", 3);
Toast.makeText(CurrentLocation.this,
"Getting zooming" + String.valueOf(getcurrentZoom),
Toast.LENGTH_LONG).show();
// }
}
});
这是我用来调用map的处理程序
:
如果只用于获取缩放级别,则不需要使用onCameraChange侦听器
相反,您可以将以下内容添加到onPause:
您可以从共享首选项中获取缩放级别,并使用以下选项将其还原:
// Get the shared preferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
// Get the zoom level (change the 13f to the default zoom level that you want)
float zoom = sharedPreferences.getFloat("Zoom_value", 13f);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(Location_onMap)
.zoom(zoom)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
我试图为存储缩放计算设置共享首选项,但它不起作用。请阅读本文,然后根据它更新您的帖子。对不起,有这么多信息我帮不了你。。。发布一些代码会有帮助。为什么设置缩放值13f@toad@Kirti没有特别的理由;如果在共享首选项中找不到缩放级别,则它只是一个默认值。我在上面留下了一条评论,说你可以把13f改成任何你想要的默认值。我在简历上的什么地方或者别的什么地方叫相机位置@蟾蜍
// Get the zoom level
float zoom = mMap.getCameraPosition().zoom;
// Save the zoom level so it can be restored
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = settings.edit();
editor.putFloat("Zoom_value", zoom);
editor.commit();
// Get the shared preferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
// Get the zoom level (change the 13f to the default zoom level that you want)
float zoom = sharedPreferences.getFloat("Zoom_value", 13f);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(Location_onMap)
.zoom(zoom)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));