Поддержка SVG на Android - PullRequest
       5

Поддержка SVG на Android

78 голосов
/ 08 октября 2010

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

Ответы [ 11 ]

56 голосов
/ 17 февраля 2012

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

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

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

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

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

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

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

Для более полного примера этого подхода вы можете обратиться к этому сообщению в блоге, в котором обсуждается использование canvg polyfill для обеспечения работы графиков Kendo UI DataViz (на основе SVG) на Android 2.x , Надеюсь, это поможет!

22 голосов
/ 12 мая 2011

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

8 голосов
/ 27 июля 2015

Android поддерживает векторные рисунки: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

И существует конвертер Android SVG в VectorDrawable: http://inloop.github.io/svg2android/

8 голосов
/ 03 ноября 2013

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

Наконец, включить SVG в Android просто.

Подробнее: Сообщение переполнения стека

8 голосов
/ 14 декабря 2010

В настоящее время некоторые люди, включая меня, работают над этим независимо.
Вы можете найти рабочее решение в следующих статьях:
Android. ImageView с поддержкой SVG.
Android ImageView и Drawable с поддержкой SVG

2 голосов
/ 11 июля 2014

Я кратко посмотрел на https://code.google.com/p/androidsvg/. До сих пор отображал все файлы SVG, которые я бросил на него. Выглядит многообещающе.

1 голос
/ 02 июля 2016

Оформить Опорный вектор для рисования .В Android Studio есть инструмент для преобразования файлов SVG в файлы .XML.

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

Начиная с библиотеки поддержки Android 23.3.0, векторные вспомогательные векторные рисунки можно загружать только через app: srcCompat или setImageResource ()

1 голос
/ 27 июня 2014

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

1) Просто возьмите существующую загрузочную библиотеку SVG, такую ​​как, например, svg-android-2 (которая является веткой svg-android, упомянутой в другом ответе, только с большим количеством функций и исправлений): 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

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

1 голос
/ 29 мая 2012

Я только что установил репозиторий Github и пример репо для моей собственной библиотеки TPSVG, которую я изначально создал специально для моего приложения.

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1

0 голосов
/ 03 мая 2011

Opera Mobile для Android поддерживает SVG, а Opera Mini поддерживает статический контент SVG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...