Android地图:保存地图的状态

时间:2015-09-11 16:47:57

标签: android google-maps geolocation sharedpreferences android-lifecycle

我有一个位置按钮,用于选择区域的地图,并按下显示吐司的保存按钮并转到它开始的活动,现在我想方便用户再次按位置按钮它将显示地图选择了区域,现在如果我使用共享优先级来使用onPause()中的putfloat()来保存纬度和经度,并在onResume()中访问这些,我需要更新相机,为此我需要LatLng对象,对吧?现在的问题是这个我有经纬度使用共享prefrences和更新相机需要LatLng的东西,我做什么

1 个答案:

答案 0 :(得分:0)

试试这个

    @Override
    protected void onResume() {
        super.onResume();        
        SharedPreferences pref = context.getSharedPreferences("saved_area", Activity.MODE_PRIVATE);
        float lat = pref.getFloat("lat", 0);
        float lng = pref.getFloat("lng", 0);
        float zoom = pref.getFloat("zoom", 0);
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoom));

    }

    @Override
    protected void onPause() {
       float zoom = map.getCameraPosition().zoom;
       float lat = (float) map.getCameraPosition().target.latitude;
       float lng = (float) map.getCameraPosition().target.longitude;

       SharedPreferences pref = context.getSharedPreferences("saved_area", Activity.MODE_PRIVATE);
       SharedPreferences.Editor editor = pref.edit();
       editor.putFloat("lat", lat);
       editor.putFloat("lng", lng);
       editor.putFloat("zoom", zoom);
       editor.commit();
       super.onPause();
    }