Есть ли способ проверить, находится ли текущая карта в режиме карты или в спутниковом режиме? - PullRequest
0 голосов
/ 22 сентября 2011

Я устанавливаю вид карты на спутник при нажатии кнопки переключения

 mapToggle.setOnClickListener(new OnClickListener()
     {

         public void onClick(View v)
         {
             if (mapToggle.isChecked())
             {   
                 mapV.setSatellite(true);  

             } else {   
                 mapV.setSatellite(false);  
             }   
    }});

Я хочу программно определить, в каком режиме он находится при перезапуске приложения. Пожалуйста, совет.

1 Ответ

1 голос
/ 22 сентября 2011

Способ, которым я достиг этого, - установить значение int в ваших SharedPreferences. Затем нажмите эту кнопку, получите значение и включите или выключите спутник соответственно.

private static final int OVERLAY_STREET = 0;
private static final int OVERLAY_SAT = 1;

@Override
public void onCreate(Bundle savedInstanceState) {

    int currentOverlayMode = prefs.getInt("map_viewmode", 0);

    mOverlayModeBtn = (Button)findViewById(R.id.googlemaps_overlay_btn);
    mOverlayModeBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (currentOverlayMode < 1)
                currentOverlayMode++;
            else
                currentOverlayMode = 0;
            switch (currentOverlayMode) {
            case OVERLAY_STREET:
                mMaps.setSatellite(false);
                mMaps.setStreetView(true);
                prefsEditor.putInt("map_viewmode", OVERLAY_STREET);
                break;
            case OVERLAY_SAT:
                mMaps.setStreetView(false);
                mMaps.setSatellite(true);
                prefsEditor.putInt("map_viewmode", OVERLAY_SAT);
                break;
            }
            prefsEditor.commit();
            mMaps.invalidate();
        }
    });
}

Возможно, вы захотите немного почистить, но у меня это работает.

...