OpenStreetMap 使用自定义 Xfermode 将标记添加到 Nutiteq MapView

OpenStreetMap add marker to Nutiteq MapView with custom Xfermode

我需要在 Nutiteq MapView 上放置一些标记。为了创建这些标记,我创建了一个带有半透明圆圈的位图。

int size = (int)(30*mDisplayMetrics.density);
Bitmap androidMarkerBitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Paint paint = new Paint();
paint.setColor(Color.argb(150, 255, 0, 0));

Canvas canvas = new Canvas(androidMarkerBitmap);
canvas.drawCircle(size / 2, size / 2, size / 2, paint);
com.nutiteq.graphics.Bitmap markerBitmap = BitmapUtils.createBitmapFromAndroidBitmap(androidMarkerBitmap);
androidMarkerBitmap.recycle();

每个标记都有相同的位图。问题在于位图的透明度(如您所见,alpha 不为 0)。当我添加许多标记时,所有位图都只是简单地添加到另一个上...问题是我不想要 "add" 透明度效果,而是我需要获得 "darken" 效果。


(来源:csdn.net

有没有办法更改 mapView 在其上绘制标记时使用的默认 Xfermode?

不,Nutiteq SDK 中没有这样的选项。您描述的效果需要将标记渲染到单独的表面(具有 'darken' 效果),然后将渲染表面(带有标记)分层放置在其他图层之上。此类功能非常昂贵且未在 SDK 中实现。