您可以使用这个样式API(夜间模式或任何其他想要的样式)来设置您的地图样式: https://developers.google.com/maps/documentation/android-sdk/styling
在拥有GoogleMap对象的类中,您可以使用以下样式之一: https://github.com/googlemaps/android-samples/blob/master/ApiDemos/java/app/src/main/res/raw/mapstyle_night.json
他们甚至有一个漂亮的预览编辑器可以创建这个json: https://mapstyle.withgoogle.com/
MapStyleOptions style = MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_night);
GoogleMap mMap; // assigned in onMapReady()
mMap.setMapStyle(style);
你需要在地图上添加一个带有暗透明背景的View
:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/myActivity_mapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
<View
android:id="@+id/myActivity_mapFragmentDark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#55000000"/>
</RelativeLayout>
这样你就可以显示/隐藏这个视图来调暗地图:
mapFragmentDark.setVisibility(View.VISIBLE);
或者
mapFragmentDark.setVisibility(View.GONE);