web-dev-qa-db-fra.com

Android Drawables vectoriels Studio 3.0 et outils LINT: ignore = "VectorPath"

Après la mise à niveau vers 3.0 Android Studio a commencé à se plaindre des longs chemins dans les graphiques vectoriels).

L'avertissement dit:

Chemin de vecteur très long (7958 caractères), ce qui est mauvais pour les performances. Envisager de réduire la précision, de supprimer des détails mineurs ou de tramer le vecteur. moins ... (⌘F1) L'utilisation de longs chemins vectoriels est mauvaise pour les performances. Il existe plusieurs façons de raccourcir le pathData: * En utilisant moins de précision * En supprimant certains détails mineurs * En utilisant l'outil Android Outil de conversion vectorielle Studio * Rastériser l'image (conversion en PNG))

La documentation https://developer.Android.com/guide/topics/graphics/vector-drawable-resources.html nous montre comment utiliser les dessins vectoriels dans nos applications, et le recommande par rapport aux png, etc.

J'utilise tous les deux Android Studio Vector Conversion Tool et cet excellent service pour convertir les SVG en dessins vectoriels: http://inloop.github.io/svg2Android/

Existe-t-il d'autres services qui contribuent davantage à réduire la complexité des vecteurs à dessiner? Où puis-je trouver des directives sur le degré d'avancement de mes dessins vectoriels?

18
Ove Stoerholt

Essayez d'optimiser le vecteur dessinable en utilisant avocado ! Cela devrait aider à réduire la complexité de vos chemins.

23
Alex Lockwood

Vous pouvez ajouter une étape supplémentaire avant d'utiliser svg2Android, qui l'exécute svgo

Un exemple de pipeline que j'utilise ressemble (notez qu'au lieu de l'outil Web, j'utilise svg2vectordrawable )

~$ svgo image.svg --config=config -o image.svg.optimized
~$ s2v "image.svg.optimized image.xml

Mon fichier config ressemble à (vous pouvez jouer avec lui pour répondre à vos besoins):

"plugins": [
    {
        "convertPathData": {
            "leadingZero": false,
            "floatPrecision": 2
         }
    }
]
6
marianosimone

Essayez d'utiliser cet outil en diminuant Precision.

1
Levon Petrosyan