是否可以使用 Android 和 Maps 片段显示小按钮以更改地图类型?

J.e*_*ome 5 android google-maps

在左下角使用谷歌地图时,您有一个图标来更改地图类型,我想将此功能添加到我的小型 Android 应用程序中,但我不知道如何。

这是我所拥有的:

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        getLastLocation();
        mMap.setMyLocationEnabled(true);
        mMap.getUiSettings().setMyLocationButtonEnabled(true);
        mMap.getUiSettings().setMapToolbarEnabled(true);
        mMap.getUiSettings().setCompassEnabled(true);
        mMap.getUiSettings().setZoomControlsEnabled(true);

        // different types of maps
      /*  mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
        mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);*/

    }  
Run Code Online (Sandbox Code Playgroud)

我试图检查 getUiSettings 但似乎没有选项?(我觉得有点奇怪)

Mru*_*nal 6

这很简单 :)

在您的地图 XML 文件中使用 FAB,如下所示:

 <com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top|right"
    android:layout_margin="@dimen/fab_margin"
    app:backgroundTint="#0D640B"
    app:elevation="20dp"
    app:fabSize="mini"
    app:rippleColor="#0D640B"
    app:srcCompat="@android:drawable/ic_menu_map_type" />
Run Code Online (Sandbox Code Playgroud)

然后在您的地图活动中添加以下行:

  FloatingActionButton fab = root.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (GoogleMap.MAP_TYPE_NORMAL == mMap.getMapType()) {
                mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            } else {
                mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            }
Run Code Online (Sandbox Code Playgroud)