OpenStreetMap добавляет маркер в Nutiteq MapView с пользовательским 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();

Каждый маркер имеет одинаковое растровое изображение. Проблема заключается в прозрачности растрового изображения (как вы можете видеть, альфа не 0). Когда я добавляю много маркеров, все растровые изображения просто добавляются друг к другу... Проблема в том, что мне не нужен эффект "добавления" для прозрачности, а вместо этого мне нужно получить "затемненный".

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

Есть ли способ изменить Xfermode по умолчанию, используемый, когда mapView рисует на нем маркеры?

1 ответ

Решение

Нет, в Nutiteq SDK такой опции нет. Описанный вами эффект потребует отрисовки маркеров на отдельной поверхности (с эффектом "затемнения"), а затем наложения рендеринговой поверхности (с маркерами) поверх других слоев. Такая функциональность довольно дорогая и не реализована в SDK.

Другие вопросы по тегам