如何在Android中将谷歌地图v2默认红色标记颜色更改为黑色?

时间:2017-05-19 11:37:20

标签: android google-maps

我使用此功能

更改标记的颜色
mMap.addMarker(
    new MarkerOptions().position(new LatLng(lat,lng)).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
);

我找不到HUE_BLACK。如何将标记颜色设置为黑色?我宁愿避免使用自定义绘图。

2 个答案:

答案 0 :(得分:0)

这是制作标记的方法

  mMap.addMarker(new MarkerOptions()
            .position(new LatLng( latitude,longitude))
            .title("This is my title")
            .snippet("and snippet")
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));

,这些是您可以使用的常量

float   HUE_AZURE
float   HUE_BLUE
float   HUE_CYAN
float   HUE_GREEN
float   HUE_MAGENTA
float   HUE_ORANGE
float   HUE_RED
float   HUE_ROSE
float   HUE_VIOLET
float   HUE_YELLOW

这就是说什么 click here

答案 1 :(得分:0)

你试过这种方式吗?

googleMap.addMarker(new MarkerOptions().position(latLng)
                                       .visible(true).snippet(String.valueOf(i))
                                       .icon(BitmapDescriptorFactory.fromBitmap(changeBitmapColor(color))));



private Bitmap changeBitmapColor(int color) {

        Bitmap ob = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_fill);
        Bitmap obm = Bitmap.createBitmap(ob.getWidth(), ob.getHeight(), Bitmap.Config.ARGB_8888);
        Bitmap overlay = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_trans);
        Bitmap overlaym = Bitmap.createBitmap(overlay.getWidth(), overlay.getHeight(), Bitmap.Config.ARGB_8888);


        Canvas canvas = new Canvas(overlaym);
        Paint paint = new Paint();
        paint.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP));
        canvas.drawBitmap(ob, 0f, 0f, paint);
        canvas.drawBitmap(overlay, 0f, 0f, null);
        return overlaym;
    }