Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将谷歌地图缩放级别设置为用户从其他活动返回时选择的状态_Android_Google Maps_Zooming - Fatal编程技术网

Android 如何将谷歌地图缩放级别设置为用户从其他活动返回时选择的状态

Android 如何将谷歌地图缩放级别设置为用户从其他活动返回时选择的状态,android,google-maps,zooming,Android,Google Maps,Zooming,我在刷新地图时遇到问题。我想在从其他活动返回时阻止google地图刷新 我使用共享首选项存储缩放计算,但它不起作用 因此,如果有人对此有想法,请回复 我用于捕捉缩放计算的侦听器 mMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition position) { // if

我在刷新地图时遇到问题。我想在从其他活动返回时阻止google地图刷新

我使用共享首选项存储缩放计算,但它不起作用

因此,如果有人对此有想法,请回复

我用于捕捉缩放计算的侦听器

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));