2010-10-08 2 views
75

Поддерживает ли Android поддержку SVG? любой пример?Поддержка SVG на Android

+1

прочитать: http://code.google.com/p/android/issues/ подробно?id = 1376 (чтение до конца) – ankitjaininfo

+2

Принятый ответ неправильный с 10/5/12 –

ответ

55

Наиболее полный ответ:

  • Андроида браузер 2.x по умолчанию изначально не поддерживает SVG.
  • браузеры Android 3+ по умолчанию поддерживают SVG.

Чтобы добавить поддержку SVG в 2.х версии платформы, у вас есть два основных варианта:

  1. Установите более способный браузер (например, Firefox или Opera Mobile - как поддержка SVG)
  2. Используйте polyfill JavaScript, который можно разобрать SVG и вынести его на HTML5 холст

Первый вариант хорошо, если вы просто пытаетесь сделать SVG работы для личного использования или ограниченного (контролируемого) набора пользователей. Это не отличный вариант, если вы хотите использовать SVG при таргетинге на большую, неконтролируемую базу пользователей.

В более позднем случае вы хотите использовать полипол. Сегодня доступно много JavaScript-библиотек, которые могут править SVG и отображать на холст. Два примера:

Используя polyfill, вы можете сделать свой SVG в canavs на всех версиях Android 2.x.

Для получения более полного примера этого подхода вы можете обратиться к this blog post that discusses the use of the canvg polyfill, чтобы сделать диаграммы DataViz для Kendo UI (на основе SVG) работать на Android 2.x. Надеюсь, это поможет!

+0

Здравствуйте, я хотел бы знать, для ImageView, могу ли я изменить цвет этой среды выполнения svg? –

22

Существует новая библиотека с открытым исходным кодом, которая поддерживает загрузку и рисование файлов SVG Basic 1.1: https://github.com/pents90/svg-android. Производительность хороша, так как фактический чертеж обрабатывается изначально объектом android.graphics.Picture.

+0

Чтобы не пропустить, я добавлю здесь комментарий (как упоминалось в ответе @ Тодда) Android 3+ поддерживает SVG. Поэтому разработчикам не нужно беспокоиться о библиотеках, если они не беспокоятся о старых устройствах Android. – monotasker

+9

В моем ответе я имею в виду библиотеку, которая позволяет разработчику загружать и отображать SVG-файлы в своих приложениях. Android 3+ добавляет поддержку браузера для SVG, но ** ** не поддерживает SVG в своем API-интерфейсе разработчика. – pents90

+1

Ах, извините. Виноват. – monotasker

8

Существует новая библиотека (при активном развитии) androidsvg, который позволяет включить SVG изображения непосредственно в проектах. Он имеет то преимущество, что определяет SVGImageView, который позволяет включать svg непосредственно в макет xml.

И наконец, в том числе svg in android прост.

Подробнее: Stack Overflow post

+0

Эта библиотека svg фактически работает. svg-android и его вилки не применяли стили/css, которые я определил в группе для детей группы. Это делает. Спасибо. – domenukk

1

Я знаю, что мое решение несколько хардкор, но он прекрасно работает, не требует каких-либо внешних библиотек (по крайней мере, не в своем окончательном коде) и очень быстро.

1) Просто возьмите существующую библиотеку SVG загрузки, такие как, например, SVG-андроида-2 (который является ответвлением SVG-андроида упоминалось в другом ответе, только с большим количеством функций и исправления ошибок): https://code.google.com/p/svg-android-2/

2) Напишите простое приложение, которое не будет делать ничего, кроме загрузки и отображения вашего изображения SVG.

3) Измените библиотеку загрузки SVG, чтобы она печатала код Java, который создает класс Picture или сохраняет его в переменной String.

4) Скопируйте код Java, полученный таким образом, в приложение, которое вы пишете.

Чтобы получить более подробную информацию об этой технике и загрузки исходного образца кода, перейдите в мой блог: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html

Вы можете получить рабочий пример этой техники из Google Play здесь: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample

Вот Пример коммерческого приложения, созданного с использованием этой техники (карта метро Милана): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan

Обратите внимание, как быстро загружается карта и насколько она выглядит, даже когда она увеличена.

8

Android поддерживает векторную: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html вводимого коэффициента

И существует Android SVG в VectorDrawable Converter: http://inloop.github.io/svg2android/

+1

и обратный порт в библиотеке поддержки: https://developer.android.com/reference/android/support/graphics/drawable/VectorDrawableCompat.html –

0

Заканчивать Support vector drawable. У Android-студии есть инструмент для преобразования SVG-файлов в файлы .XML.

При использовании AppCompat с ImageView (или подклассами, такими как ImageButton и FloatingActionButton) вы сможете использовать новое приложение: атрибут srcCompat для ссылок на векторные чертежи (а также любые другие доступные для android: src):

на Android поддержка Библиотека 23.3.0, поддержка векторных вводимого коэффициента может быть загружен только через приложение: srcCompat или setImageResource()

Смежные вопросы