在Android中的地图上更改自定义标记的颜色

时间:2016-01-11 06:06:10

标签: android android-custom-view

我正在尝试更改地图上标记的颜色。我想要一个普通标记的形状,但使用自定义颜色。我已经尝试了以下代码,但它没有做任何颜色变化,也没有给出任何错误。您能指导任何解决方案或任何替代方法吗?任何帮助都将受到高度赞赏。

代码:

Drawable background = context.getResources().getDrawable(R.drawable.pink_map);
    if (background instanceof ShapeDrawable) {
        ((ShapeDrawable)background).getPaint().setColor(getResources().getColor(R.color.theme_color));
    } else if (background instanceof GradientDrawable) {
        ((GradientDrawable)background).setColor(getResources().getColor(R.color.theme_color));
    }

    // convert drawable to bitmap
    Bitmap bitmap = ((BitmapDrawable) background).getBitmap();

    Marker marker = mMap.addMarker(new MarkerOptions().position(sydney)
                    .title("My Location")
                    .icon(BitmapDescriptorFactory.fromBitmap(bitmap))

2 个答案:

答案 0 :(得分:2)

这对我有用:

mMap.addMarker(new MarkerOptions()
                    .position(contactLatLng)
                    .title(contactName)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_map_blue))
                    );

重要的是将图像资源导入为“操作栏和选项卡图标”选项。然后选择主题CUSTOM,您可以选择自定义颜色来应用图像。 enter image description here

答案 1 :(得分:1)

请尝试此代码

  BitmapDescriptor bitmapDescriptor
            = BitmapDescriptorFactory.fromResource(
            (int) BitmapDescriptorFactory.HUE_AZURE);

     mMap.addMarker(new MarkerOptions()
            .position(sydney)
            .title("My Location")
            .snippet("and snippet")
            .icon(bitmapDescriptor);

如果不起作用,请从GDC

检查此备用库