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

时间:2015-08-03 13:10:03

标签: android canvas openstreetmap nutiteq 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)。当我添加许多标记时,所有位图都只是添加到另一个...问题是我不希望"添加"对透明度的影响,但我需要获得"变暗"之一。

http://img.blog.csdn.net/20140426213750328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1qNjIzNTY1Nzkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

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

1 个答案:

答案 0 :(得分:0)

不,Nutiteq SDK中没有这样的选项。您描述的效果需要将标记渲染到单独的曲面(具有“变暗”效果),然后将渲染曲面(带有标记)分层到其他图层的顶部。此类功能非常昂贵,并且未在SDK中实现。