Unterstützt Android SVG? irgendein Beispiel?
Unterstützt Android SVG? irgendein Beispiel?
Antworten:
Die vollständigste Antwort lautet:
Um SVx-Versionen der 2.x-Version 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) Gruppe von Benutzern zum Laufen zu bringen. Es ist keine gute Option, wenn Sie SVG verwenden möchten, während Sie auf eine große, unkontrollierte Benutzerbasis abzielen.
Im späteren Fall möchten Sie eine Polyfüllung verwenden. Es gibt heute viele JavaScript-Bibliotheken, die 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 Blog-Beitrag, in dem die Verwendung der Canvg-Polyfüllung für die Funktionsweise von Kendo UI DataViz-Diagrammen (SVG-basiert) unter Android 2.x erläutert wird . 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 verarbeitet wird.
Derzeit arbeiten einige Leute, darunter ich, unabhängig 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
Es gibt eine neue Bibliothek (in aktiver Entwicklung) androidsvg , mit der man SVG-Bilder direkt in Projekte einbinden kann. Es hat den Vorteil, ein zu definieren, SVGImageView
das es einem ermöglicht, ein SVG direkt in die Layout-XML zu integrieren.
Schließlich ist das Einfügen von SVG in Android unkompliziert.
Weitere Details: Stapelüberlaufpfosten
Android unterstützt Vektor-Drawables: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
Und es gibt einen Konverter von Android SVG zu VectorDrawable: http://inloop.github.io/svg2android/
Ich habe einen kurzen Blick auf https://code.google.com/p/androidsvg/ geworfen . Bisher wurden alle SVG-Dateien angezeigt, die ich darauf geworfen habe. Sieht vielversprechend aus.
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.
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 wird, 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 Java-Code druckt, der die Picture-Klasse erstellt, oder in einer String-Variablen speichert.
4) Kopieren Sie den auf diese Weise erhaltenen Java-Code in die App, die Sie schreiben.
Weitere Informationen zu dieser Technik und zum Herunterladen des Beispielquellcodes finden Sie in meinem Blog: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html
Ein funktionierendes Beispiel für diese Technik erhalten Sie von Google Play hier: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample
Hier ist ein Beispiel für eine kommerzielle 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 aussieht, auch wenn sie vergrößert ist.
Check out Support-Vektor zeichnbar . Android Studio verfügt über 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 auf Vektor-Drawables zu verweisen (sowie auf alle anderen für Android: src verfügbaren Drawables):
Ab Android Support Library 23.3.0 können Support Vector Drawables nur über die App geladen werden: srcCompat oder setImageResource ()
Opera Mobile für Android unterstützt SVG und Opera Mini unterstützt statische SVG-Inhalte.