我正在使用以下导入来实现地图框地图和地图框导航:
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);
}
});
导航活动显示的地图的样式与我在用于启动导航活动的地图中使用的样式不匹配。如何更改导航视图中地图的样式,使其与我用于选择目的地的地图的样式相匹配。
幸运的是,这并不太棘手——这是一个为此创建新样式(在styles.xml中(的问题。
大致如下:(摘自Mapbox的指南/文档(
[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同时指定浅色和深色样式。关于这方面的更多信息,请点击此处。
我真诚地希望这有帮助,并欢迎SO!