SVG soutien sur Android
11 réponses
La réponse La plus complète est ceci:
- L'Androïde 2.x navigateur par défaut ne supporte pas nativement SVG.
- les navigateurs Android 3+ par défaut prennent en charge SVG.
Pour ajouter le support SVG à 2.X versions de la plate-forme, vous avez deux choix de base:
- installez un navigateur plus capable (comme Firefox ou Opera Mobile - les deux prennent en charge SVG)
- Utilisez un polyfill JavaScript qui peut analyser SVG et le rendre sur un canevas HTML5
La première option est-ce correct si vous essayez juste de faire fonctionner SVG pour des usages personnels ou un ensemble limité (contrôlable) d'utilisateurs. Ce n'est pas une excellente option si vous voulez utiliser SVG tout en ciblant une grande base d'utilisateurs non contrôlée.
Dans le cas ultérieur, vous souhaitez utiliser un polyfill. Il existe de nombreuses bibliothèques JavaScript disponibles aujourd'hui qui peuvent prase SVG et rendre à un canevas. Deux exemples sont:
En utilisant un polyfill, vous pouvez rendre votre SVG dans un canavs sur toutes les versions D'Android 2.x.
Pour un exemple plus complet de cette approche, vous pouvez vous référer à cet article de blog qui traite de l'utilisation du polyfill canvg pour faire fonctionner les graphiques Kendo UI DataViz (basés sur SVG) sur Android 2.x. Espérons que ça aide!
Il existe une nouvelle bibliothèque open-source qui prend en charge le chargement et le dessin des fichiers SVG basic 1.1: https://github.com/pents90/svg-android . les performances sont bonnes car le dessin réel est géré nativement par un android.graphique.L'image de l'objet.
Actuellement, certaines personnes y compris moi travailler de manière indépendante.
Vous pouvez trouver une solution de travail dans ces articles:
Android. ImageView avec le Support SVG.
Android ImageView et Drawable avec le support SVG
Il y a une nouvelle bibliothèque (en cours de développement actif) androidsvg qui permet d'incorporer des images svg directement dans les projets. Il a l'avantage de définir un SVGImageView
qui permet d'incorporer un svg directement dans la mise en page xml.
Enfin, y compris svg dans android est simple.
Plus de détails: Débordement de Pile post -
Android prend en charge les drawables vectoriels: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
Et il existe un convertisseur Android SVG vers VectorDrawable: http://inloop.github.io/svg2android/
J'ai eu un bref coup d'oeil à https://code.google.com/p/androidsvg / . jusqu'à présent affiché tous les fichiers svg Je l'ai jeté. L'air prometteur.
Je viens de lancer un dépôt GitHub et un exemple de dépôt pour ma propre bibliothèque TPSVG, que j'ai initialement créé spécifiquement pour une de mes applications.
Je sais que ma solution est un peu hardcore, mais elle fonctionne très bien, ne nécessite aucune bibliothèque externe (du moins pas dans votre code final) et est extrêmement rapide.
1) Il suffit de prendre une bibliothèque de chargement SVG existante, comme par exemple svg-android-2 (qui est une fourchette de svg-android mentionnée dans une autre réponse, juste avec plus de fonctionnalités et de corrections de Bugs): https://code.google.com/p/svg-android-2/
2) écrivez une application simple qui ne fera rien d'autre que de charger et d'afficher votre SVG image.
3) Modifiez la bibliothèque de chargement SVG, afin qu'elle imprime le code Java qui crée la classe D'image ou l'enregistre dans une variable de chaîne.
4) Copiez-collez le code Java obtenu de cette façon dans l'application que vous écrivez.
Pour obtenir plus d'informations sur cette technique et télécharger un exemple de code source, allez sur mon blog: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html
Vous pouvez obtenir un exemple de travail de ce technique de Google Play ici: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample
Voici un exemple d'application commerciale créée en utilisant cette technique (carte du métro de Milan): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan
Remarquez à quelle vitesse la carte se charge et à quel point elle est jolie, même lorsqu'elle est agrandie.
Opera Mobile pour Android prend en charge svg, et Opera Mini prend en charge le contenu svg statique.
Extraire Support vecteur drawable . Android studio a un outil pour convertir les fichiers SVG .Des fichiers XML.
Lorsque vous utilisez AppCompat avec ImageView (ou des sous-classes telles que ImageButton et FloatingActionButton), vous pourrez utiliser le nouvel attribut app:srcCompat pour référencer les drawables vectoriels (ainsi que tout autre drawable disponible pour android: src):
À partir de la bibliothèque de Support Android 23.3.0, les drawables vectoriels de support ne peuvent être chargés que via l'application: srcCompat ou setImageResource ()