如何更改导航视图中地图的样式?
How do I change the style of the map in a navigation view?
我正在使用这些导入实现 mapbox 地图和 mapbox 导航:
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.42.6'
我有一张自制地图样式的地图,我从中 select 一个目的地位置并启动导航 activity。
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);
}
});
导航 activity 显示的地图的样式与我在用于启动导航 activity 的地图中使用的样式不匹配。如何更改导航视图中的地图样式以匹配我用于 select 目的地地图的样式。
(幸运的是)做起来并不难 - 只需为此创建一种新样式(在 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 中找到有关样式化导航 UI SDK 的可能性的深入概述:
https://docs.mapbox.com/android/navigation/guides/styles/
除上述之外,似乎还可以通过 NavigationLauncherOptions.Builder 指定浅色和深色样式,如果您对此感兴趣的话。更多信息,here。
真诚希望对您有所帮助,欢迎来到 SO!
我正在使用这些导入实现 mapbox 地图和 mapbox 导航:
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.42.6'
我有一张自制地图样式的地图,我从中 select 一个目的地位置并启动导航 activity。
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);
}
});
导航 activity 显示的地图的样式与我在用于启动导航 activity 的地图中使用的样式不匹配。如何更改导航视图中的地图样式以匹配我用于 select 目的地地图的样式。
(幸运的是)做起来并不难 - 只需为此创建一种新样式(在 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 中找到有关样式化导航 UI SDK 的可能性的深入概述: https://docs.mapbox.com/android/navigation/guides/styles/
除上述之外,似乎还可以通过 NavigationLauncherOptions.Builder 指定浅色和深色样式,如果您对此感兴趣的话。更多信息,here。
真诚希望对您有所帮助,欢迎来到 SO!