webentwicklung-frage-antwort-db.com.de

SVG-Unterstützung für Android

Unterstützt Android SVG? Irgendein Beispiel?

78
Kakey

Die vollständigste Antwort lautet:

  • Der Standardbrowser Android 2.x unterstützt SVG nicht von Haus aus.
  • Die Android 3+ Standardbrowser unterstützen SVG.

Um SVG-Unterstützung zu 2.x-Versionen der Plattform hinzuzufügen, haben Sie zwei grundlegende Möglichkeiten:

  1. Installieren Sie einen leistungsfähigeren Browser (wie Firefox oder Opera Mobile - beide unterstützen SVG)
  2. Verwenden Sie eine JavaScript-Polyfüllung, mit der SVG analysiert und in einer HTML5-Zeichenfläche gerendert werden kann

Die erste Option ist in Ordnung, wenn Sie nur versuchen, SVG für den persönlichen Gebrauch oder eine begrenzte (kontrollierbare) Anzahl von Benutzern zum Laufen zu bringen. Dies ist keine gute Option, wenn Sie SVG für eine große, unkontrollierte Benutzerbasis verwenden möchten.

Im letzteren Fall möchten Sie eine Polyfüllung verwenden. Heutzutage sind viele JavaScript-Bibliotheken verfügbar, mit denen Sie SVG prasen und auf eine Zeichenfläche rendern können. Zwei Beispiele sind:

Mit einer Polyfüllung können Sie Ihre SVG-Datei auf allen Versionen von Android 2.x in einem Canav rendern.

Ein vollständigeres Beispiel für diesen Ansatz finden Sie in diesem Blogeintrag, in dem die Verwendung der Option "canvg polyfill" erläutert wird , damit Kendo UI DataViz-Diagramme (SVG-basiert) auf Androidfunktionieren. _ 2.x. Hoffentlich hilft das!

56
Todd

Es gibt eine neue Open-Source-Bibliothek, die das Laden und Zeichnen von SVG Basic 1.1-Dateien unterstützt: https://github.com/pents90/svg-Android . Die Leistung ist gut, da die eigentliche Zeichnung nativ von einem Android.graphics.Picture-Objekt verwaltet wird.

22
pents90

Es gibt eine neue Bibliothek (in aktiver Entwicklung) androidsvg , mit der man SVG-Bilder direkt in Projekte einbinden kann. Es hat den Vorteil, ein SVGImageView zu definieren, mit dem man eine SVG direkt in die Layout-XML einbinden kann.

Schließlich ist das Einfügen von svg in Android) unkompliziert.

Weitere Details: Stack Overflow post

8
Abid H. Mujtaba

Derzeit arbeiten einige Leute, darunter ich, selbstständig daran.
In diesen Artikeln finden Sie möglicherweise eine funktionierende Lösung:
Android. ImageView mit SVG-Unterstützung.
Android ImageView und Drawable mit SVG-Unterstützung

8
Pavel Chernov

Android unterstützt Vektorzeichen: https://developer.Android.com/reference/Android/graphics/drawable/VectorDrawable.html

Und es gibt einen Android SVG to VectorDrawable Converter: http://inloop.github.io/svg2Android/

8
David Peer

Ich habe mir https://code.google.com/p/androidsvg/ angesehen. Bisher wurden alle SVG-Dateien angezeigt, die ich darauf geworfen habe. Sieht vielversprechend aus.

2
Alex

Ich weiß, dass meine Lösung etwas hardcore ist, aber sie funktioniert hervorragend, erfordert keine externen Bibliotheken (zumindest nicht in Ihrem endgültigen Code) und ist extrem schnell.

1) Nehmen Sie einfach eine vorhandene SVG-Ladebibliothek, wie zum Beispiel svg-Android-2 (eine Abzweigung von svg-Android, die in einer anderen Antwort erwähnt wurde, nur mit mehr Funktionen und Bugfixes): https: // code .google.com/p/svg-Android-2 /

2) Schreiben Sie eine einfache App, die nichts anderes tut, als Ihr SVG-Bild zu laden und anzuzeigen.

3) Ändern Sie die SVG-Ladebibliothek so, dass sie den Code Java) ausgibt, mit dem die Picture-Klasse erstellt oder in einer String-Variablen gespeichert wird.

4) Kopieren Sie den so erhaltenen Code Java) in die App, die Sie schreiben.

Um weitere Informationen zu dieser Technik zu erhalten und Beispielquellcode herunterzuladen, gehen Sie zu meinem Blog: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-Android.html

Ein funktionierendes Beispiel für diese Technik finden Sie bei Google Play hier: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample

Hier ist ein Beispiel einer kommerziellen App, die mit dieser Technik erstellt wurde (Mailänder U-Bahn-Karte): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan

Beachten Sie, wie schnell die Karte geladen wird und wie hübsch sie auch bei Vergrößerung aussieht.

1
Bartek

Auschecken Support vector drawable . Android Studio hat ein Tool zum Konvertieren von SVG-Dateien in XML-Dateien.

wenn Sie AppCompat mit ImageView (oder Unterklassen wie ImageButton und FloatingActionButton) verwenden, können Sie das neue Attribut app: srcCompat verwenden, um Vektorzeichnungen zu referenzieren (sowie alle anderen für Android verfügbaren Zeichnungen: src):

Ab Android Support Library 23.3.0, Support Vector Drawables können nur über die App geladen werden: srcCompat oder setImageResource ()

1
Surya

Ich habe gerade ein Github-Repo und ein Beispiel-Repo für meine eigene TPSVG-Bibliothek erstellt, die ich ursprünglich speziell für eine meiner Anwendungen erstellt habe.

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1

1
Trevor

Firefox für Android unterstützt SVG.

0
Zuuum

Opera Mobile für Android unterstützt SVG, und Opera Mini unterstützt statische SVG-Inhalte.

0
Erik Dahlström