【问题标题】:How do I change the style of the map in a navigation view?如何在导航视图中更改地图的样式?
【发布时间】:2021-04-19 21:33:58
【问题描述】:

我正在使用这些导入来实现 mapbox 地图和 mapbox 导航:

    implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'
    implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.42.6'

我有一个自制地图样式的地图,我从中选择一个目的地位置并启动导航活动。

button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        boolean simulateRoute = false;
                        NavigationLauncherOptions options = NavigationLauncherOptions.builder()
                                .directionsRoute(currentRoute)
                                .shouldSimulateRoute(simulateRoute)
                                .build();
                        // Call this method with Context from within an Activity
                        NavigationLauncher.startNavigation(NavigationActivity.this, options);
                    }
                });

导航活动显示的地图的样式与我在地图中用于启动导航活动的样式不匹配。如何更改导航视图中的地图样式以匹配我用于选择目的地的地图的样式。

【问题讨论】:

    标签: android navigation styles mapbox


    【解决方案1】:

    (幸运的是)这不是太棘手 - 为此目的创建一个新样式(在 styles.xml 中)。

    类似这样的:(an excerpt from Mapbox's guides/documentation)

    [style.xml]

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    
    <!-- Mapbox Navigation style. Loads more items can be styled simply by adding them below. -->    
    <style name="NavigationView" parent="Theme.AppCompat.NoActionBar">
        <item name="navigationViewPrimary">@color/mapboxWhite</item>
        <item name="navigationViewSecondary">@color/mapboxBlue</item>
        <item name="navigationViewAccent">@color/mapboxPink</item>
    </style>
    

    正如上面的代码摘录中提到的,可以使用上面的方法来设置很多(几乎所有)UI 的样式。可以在以下 URL 中找到有关设置 Navigation UI SDK 样式的详细信息: https://docs.mapbox.com/android/navigation/guides/styles/

    除了上述之外,如果感兴趣的话,似乎可以通过 NavigationLauncherOptions.Builder 指定浅色和深色样式。更多信息,here

    我真诚地希望对您有所帮助,欢迎来到 SO!

    【讨论】:

    • 哦,好的,谢谢您如此详尽的回答。对不起,我没有清楚地表达自己。我想知道是否有一种方法可以使用样式 uri 或在 Mapbox studio 中创建的样式的链接来更改导航视图中地图的样式。
    • @TheCmart 不幸的是,据我所知,将样式传递给导航视图是不可能的。我在上面概述的方法有效,但是逐步浏览现有的地图样式并复制各种颜色等有点痛苦。
    • 好的,我明白了。感谢您的快速回复。
    • 没问题@TheCmart,保重,祝您项目顺利进行
    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多