Можно ли отобразить маленькую кнопку для изменения типа карты, используя Android и фрагмент Карты? - PullRequest
2 голосов
/ 29 апреля 2020

При использовании 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);*/

    }  

Я пытался проверить getUiSettings, но, похоже, для этого нет выбора? (что я нахожу немного странным)

1 Ответ

3 голосов
/ 30 апреля 2020

Все просто:)

Используйте FAB на вашей карте XML Файл, подобный этому:

 <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" />

Затем добавьте эти строки на вашу карту Активность:

  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);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...