2015-07-15 3 views
5

Есть ли способ использовать векторную графику, чтобы быть маркером Google Maps? Я знаю, что карты google имеют растровое изображение для маркера, но у меня есть векторная графика (поступающая с сервера), и я не уверен, как отобразить это как маркер?Векторная графика для google map marker

Спасибо

+2

Кто бы ни затормозил, может быть, вы могли бы потратить 4 секунды на то, почему. Это абсолютно правильный вопрос – Snake

ответ

1

Технически, если вы можете визуализировать свое векторное изображение как Drawable, вы можете использовать его как маркер карты. Векторные рисунки на Android сложны, но, возможно, вы уже решили эту проблему.

Вам необходимо программно создать записываемый растровый файл с требуемым размером (укажите постоянный размер в провалах, чтобы настроить его на плотность экрана), создайте холст на основе этого растрового изображения, установите границы на вашем Drawable, затем нарисуйте его Холст. Затем ваш Bitmap будет содержать рендеринг вашего Drawable, и вы можете создать маркер из него.

+0

Так вот, моя проблема тогда, как мне получить этот вектор, чтобы стать привлекательным? :) Мне не хватает связи между векторной графикой и графикой, которую поддерживают андроиды. – Snake

+0

@Snake Android понимает VectorDrawables (** подмножество ** файлов SVG) только с Lollipop. В качестве альтернативы (и в настоящее время лучше всего подходит) вы можете использовать бесплатную библиотеку синтаксического анализа SVG, которая вернет извлечение из стандартного файла SVG. –

+0

Отсутствует библиотека синтаксического анализа SVG, и вы должны действительно нацелиться на самый низкий возможный профиль SVG, чтобы максимизировать совместимость: SVG Tiny предпочтительнее или SVG Basic. Вы также можете получить совместимость VectorDrawable в старых версиях с помощью библиотеки «MrVector» или в ближайшее время с помощью библиотеки поддержки. Я не знаю, какой формат ваш сервер принимает или возвращает, но ваш лучший вариант - позволить серверу выполнить преобразование в Bitmap. – BladeCoder

0

, но у меня есть вектор графический файл, и я не знаю, как достичь этого?

Открыть его в приложении для векторного рисования и экспортировать в виде растрового изображения (PNG) для использования на Android. Это менее болезненный путь, чем все остальное.

+0

Хотелось бы, чтобы это :). Проблема в том, что он поступает с сервера, так что он загружается пользователями. Я уточню вопрос как «файл может ввести в заблуждение» – Snake

+1

, а затем, возможно, ваш сервер должен отобразить его в растровое изображение? Использование векторов на Android - довольно P.I.T.A. поскольку большинство системных методов ожидает растровые изображения. Тем не менее вы можете создать собственную пользовательскую визуализацию и визуализировать векторную графику (или, возможно, уже есть сторонний компонент - вам нужно немного поискать) –

+0

Вся причина, по которой я хочу o использовать векторную графику, чтобы я сохранял размер, должен быть скачал. Это будет анимация, которая включает в себя несколько изображений (тип спрайтов). Если я использую изображения с сервера, тогда загрузка будет проблемой, так как их будет много. Использование векторной графики «предположительно» должно быть математикой, которая инструктирует систему как рисовать их, поэтому она должна быть намного меньше размера. – Snake