如何在SupportMapFragment中使用暗模式?

时间:2016-05-10 10:19:34

标签: android google-maps supportmapfragment

我在我的代码中使用 SupportMapFragment (class =“com.google.android.gms.maps.SupportMapFragment”)地图

当我将我的应用程序切换到黑暗或夜晚模式时,除了地图片段之外,一切都在黑暗中。

有没有办法在SupportMapFragment中使用暗模式?

感谢。

我正在使用灯光模式地图

enter image description here

我想要下面的夜间模式地图

enter image description here

2 个答案:

答案 0 :(得分:9)

您可以使用此样式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);

答案 1 :(得分:0)

您需要在地图上添加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);