在android中设置带有动态颜色的地图标记图标
如何设置动态颜色的自定义标记图标,仅更改动态颜色的绿色区域在android中设置带有动态颜色的地图标记图标,android,google-maps,marker,colorfilter,Android,Google Maps,Marker,Colorfilter,如何设置动态颜色的自定义标记图标,仅更改动态颜色的绿色区域 googleMap.addMarker(new MarkerOptions() .position(latLng) .visible(true) .icon(BitmapDescriptorFactory.fromBitmap(changeBitmapColo
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.visible(true)
.icon(BitmapDescriptorFactory.fromBitmap(changeBitmapColor(color))));
//此处设置标记图标的动态颜色
private Bitmap changeBitmapColor(int color) {
Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.pin_def);
Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, 0, 0,
sourceBitmap.getWidth() - 1, sourceBitmap.getHeight() - 1);
Paint p = new Paint();
ColorFilter filter = new LightingColorFilter(color, 0);
p.setColorFilter(filter);
Canvas canvas = new Canvas(resultBitmap);
canvas.drawBitmap(resultBitmap, 0, 0, p);
return resultBitmap;
}
//它的工作,但它也改变了白色。如何避免这种情况,只改变绿色,保持中心白色区域不变。多谢各位
我通过以下方式实现这一点。我使用了两个单独的图像(有徽标和没有相同大小的徽标),带有徽标的图像是透明的,并将它们合并为一个,看起来像一个单独的图像
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;
}
你能分享第二张图片吗?我想知道你想要什么样的透明图片make@BaradiBaradari您可以在此处查看,然后(trans)