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). Когда я добавляю много маркеров, все растровые изображения просто ДОБАВЛЯЮТСЯ одно поверх другого... Проблема в том, что мне не нужен эффект "добавить" для прозрачности, а вместо этого мне нужно получить эффект "затемнения".

введите здесь описание изображения
(источник: csdn.net)

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


person Massimo    schedule 03.08.2015    source источник


Ответы (1)


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

person MarkT    schedule 04.08.2015