Mapbox for Android:更改标记图标的颜色

问题描述:

我在我的Android应用程序中使用Mapbox,并为我的标记具有自定义(黑色)图标。如果黑色是否可以将标记的图标颜色更改为其他颜色?Mapbox for Android:更改标记图标的颜色

如果可以使用默认图标,我也可以使用默认图标。

Mapbox Android SDK使用PNG文件作为标记图标。您可以将任何PNG文件用作图标,换句话说,标记可以是任何您想要的颜色。 Heres an example带有使用自定义图标的标记。继承人的代码做的大部分工作:

  // Create an Icon object for the marker to use 
      IconFactory iconFactory = IconFactory.getInstance(MainActivity.this); 
      Drawable iconDrawable = ContextCompat.getDrawable(MainActivity.this, R.drawable.purple_marker); 
      Icon icon = iconFactory.fromDrawable(iconDrawable); 

      // Add the custom icon marker to the map 
      mapboxMap.addMarker(new MarkerOptions() 
        .position(new LatLng(-33.8500000, 18.4158234)) 
        .title("Cape Town Harbour") 
        .snippet("One of the busiest ports in South Africa") 
        .icon(icon)); 

这里有一些标记我使用相同的风格为默认图标制作:

将这些在你的项目drawable-xxhdpi文件夹。这些是从Mapbox Android Demo app拉你可以从play store

+0

谢谢!不过,我认为这不会让我以编程方式更改颜色。我认为这将有助于:http://*.com/questions/11376516/change-drawable-color-programmatically –

+0

在我的情况下,我正在处理位图作为引脚gfx的来源不是内部应用程序内部来,但来从服务器。我必须从服务器上下载这个标记图标。每次我在某些场合多次设置图标时,标记会从地图中移除。我想知道为什么?我猜它会去OOM。 –

让你可以改变图标的​​颜色编程

Drawable iconDrawable = ResourcesCompat.getDrawable(getResources(), R.drawable.your_marker, null); 
iconDrawable = DrawableCompat.wrap(iconDrawable); 
//Changing color to white 
DrawableCompat.setTint(iconDrawable, Color.WHITE); 
//Use this icon in addMarker(new MarkerOptions()... 
Icon icon = iconFactory.fromDrawable(iconDrawable);