我完成此操作的方法是在 SharedPreferences 中设置一个 int 值。然后单击该按钮,获取值并相应地打开或关闭卫星。
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();
}
});
}
你可能想稍微清理一下,但它对我有用。