Unterstützt Android SVG? Irgendein Beispiel?
Die vollständigste Antwort lautet:
Um SVG-Unterstützung zu 2.x-Versionen der Plattform hinzuzufügen, haben Sie zwei grundlegende Möglichkeiten:
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!
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.
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
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
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/
Ich habe mir https://code.google.com/p/androidsvg/ angesehen. Bisher wurden alle SVG-Dateien angezeigt, die ich darauf geworfen habe. Sieht vielversprechend aus.
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.
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 ()
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.
Firefox für Android unterstützt SVG.
Opera Mobile für Android unterstützt SVG, und Opera Mini unterstützt statische SVG-Inhalte.