Mapbox NavigationView可绘制GPS跟踪箭头

时间:2019-11-12 15:26:11

标签: android mapbox

我需要在导航路线视图中用圆圈更改默认箭头。我尝试了以下操作,但不起作用。

 <style name="NavigationLayerStyle">
        <item name="mapbox_gpsDrawable">@drawable/ic_directions_black_24dp</item>

    </style>


<com.mapbox.services.android.navigation.ui.v5.NavigationView
    android:id="@+id/navigationView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:navigationViewMapStyle="@style/CustomNavigationViewDark"
    app:navigationDarkTheme="@style/CustomNavigationViewDark"
    app:navigationLightTheme="@style/CustomNavigationViewDark"
    app:navigationViewPrimary="@color/colorPrimary"
    app:navigationViewLocationLayerStyle="@style/NavigationLayerStyle"/>

还有其他方法可以实现这一目标吗? enter image description here

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,几小时后我发现了 首先,您需要使用自定义可绘制对象声明自定义样式。

为此,您需要声明“ NavigationLocationLayerStyle”样式扩展(包含可绘制对象),并为其指定属性“ mapbox_gpsDrawable”

<style name="customGPS" parent="NavigationLocationLayerStyle">
    <item name="mapbox_gpsDrawable">@drawable/bike_icon_map</item>
</style>

然后,使用您的自定义位置图层样式声明“主主题”

<style name="customdark" parent="NavigationViewDark">
    <item name="navigationViewLocationLayerStyle">@style/customGPS</item>
</style>

完成后,只需将主题插入导航视图 为此,您不能使用任何NavigationView方法,因为它们都不起作用(或者至少我没有找到正确的方法)。所以我只写了这个命令(在kotlin中):

(this as Context).setTheme(R.style.customdark)

这大致可行,希望还不算太晚。