Поддерживает ли Android SVG? любой пример?
Поддерживает ли Android SVG? любой пример?
Ответы:
Самый полный ответ таков:
Чтобы добавить поддержку SVG в версии 2.x платформы, у вас есть два основных варианта:
Первый вариант подойдет, если вы просто пытаетесь заставить SVG работать для личного использования или ограниченного (контролируемого) набора пользователей. Это не лучший вариант, если вы хотите использовать SVG при нацеливании на большую неконтролируемую базу пользователей.
В последнем случае вы захотите использовать полифил. Сегодня доступно множество библиотек JavaScript, которые могут обрабатывать SVG и отображать их на холсте. Вот два примера:
Используя полифил, вы можете визуализировать свой SVG-файл в формате Canav на всех версиях Android 2.x.
Чтобы получить более полный пример этого подхода, вы можете обратиться к этому сообщению в блоге, в котором обсуждается использование полифила canvg для того, чтобы диаграммы Kendo UI DataViz (на основе SVG) работали на Android 2.x. Надеюсь, это поможет!
Существует новая библиотека с открытым исходным кодом, которая поддерживает загрузку и отрисовку файлов SVG Basic 1.1: https://github.com/pents90/svg-android . Производительность хорошая, поскольку фактический рисунок изначально обрабатывается объектом android.graphics.Picture.
В настоящее время некоторые люди, включая меня, работают над этим самостоятельно.
Вы можете найти рабочее решение в этих статьях:
Android. ImageView с поддержкой SVG.
Android ImageView и Drawable с поддержкой SVG
Есть новая библиотека (в стадии активной разработки) androidsvg, которая позволяет включать изображения svg непосредственно в проекты. Его преимущество заключается в том, что он определяет, SVGImageView
что позволяет включать SVG непосредственно в XML-макет.
Наконец, включить svg в Android очень просто.
Подробнее: сообщение о переполнении стека
Android поддерживает векторные чертежи: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
И существует конвертер Android SVG в VectorDrawable: http://inloop.github.io/svg2android/
Я бегло просмотрел https://code.google.com/p/androidsvg/ . Пока что отображались все файлы svg, которые я на него закидывал. Выглядит многообещающе.
Я только что выложил репозиторий Github и репозиторий примеров для моей собственной библиотеки TPSVG, которую я изначально создал специально для своего приложения.
Я знаю, что мое решение несколько хардкорно, но оно отлично работает, не требует внешних библиотек (по крайней мере, не в вашем окончательном коде) и работает очень быстро.
1) Просто возьмите существующую библиотеку загрузки SVG, такую как, например, svg-android-2 (которая является вилкой svg-android, упомянутой в другом ответе, только с дополнительными функциями и исправлениями): https://code.google.com / п / 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
Обратите внимание, как быстро загружается карта и как красиво она выглядит даже при увеличении.
Ознакомьтесь с возможностью рисования опорных векторов . В Android studio есть инструмент для преобразования файлов SVG в файлы .XML.
при использовании AppCompat с ImageView (или подклассами, такими как ImageButton и FloatingActionButton), вы сможете использовать новый атрибут app: srcCompat для ссылки на векторные чертежи (а также любые другие доступные для android: src чертежи):
Начиная с Android Support Library 23.3.0, векторные чертежи поддержки можно загружать только через app: srcCompat или setImageResource ()
Opera Mobile для Android поддерживает svg, а Opera Mini поддерживает статический svg-контент.