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). Когда я добавляю много маркеров, все растровые изображения просто добавляются друг к другу... Проблема в том, что мне не нужен эффект "добавления" для прозрачности, а вместо этого мне нужно получить "затемненный".
Есть ли способ изменить Xfermode по умолчанию, используемый, когда mapView рисует на нем маркеры?
1 ответ
Нет, в Nutiteq SDK такой опции нет. Описанный вами эффект потребует отрисовки маркеров на отдельной поверхности (с эффектом "затемнения"), а затем наложения рендеринговой поверхности (с маркерами) поверх других слоев. Такая функциональность довольно дорогая и не реализована в SDK.