J'ai un SVG drawable. Parfois, je dois ajuster la taille. D'habitude, je mets à jour la largeur et la hauteur. Ce que je ne peux pas comprendre, c'est comment la largeur et la hauteur de viewport affectent également le svg. Il semble que changer ces dimensions peut pousser le svg hors de vue dans la zone visible.
Que représentent ces unités de mesure? Quelle est sa relation avec la largeur et la hauteur, respectivement? Le documentation de Google est (comme d'habitude) terriblement inadéquat. Quelqu'un pourrait-il s'il vous plaît élaborer?
viewportWidth
et viewPortHeight
définissent la zone du document dans laquelle le contenu de VectorDrawable est dessiné. Ils sont équivalents aux champs width et height d'un SVG viewBox
. Recherchez le fonctionnement d'un viewBox SVG si vous avez besoin d'explications supplémentaires.
Alors imaginez que votre forme est un rectangle de 100 cm de large et 100 de hauteur. Vos viewportWidth
et viewPortHeight
devraient normalement être tous deux réglés sur 100. Ainsi, Android connaît les dimensions des formes sous-jacentes.
Les attributs width
et height
indiquent à Android quelle doit être la taille de rendu par défaut ("intrinsèque") du VectorDrawable. Vous pouvez les considérer comme la largeur et la hauteur d'un PNG ou GIF (ou SVG, d'ailleurs).
Ainsi, le contenu de votre VectorDrawable peut être défini sur une zone de 100x100. Mais si votre largeur et votre hauteur sont 24x24, le contenu sera réduit de 100x100 à 24x24.
C’est la raison pour laquelle bidouiller avec les variables viewportWidth
et viewPortHeight
avec VectorDrawable. Ainsi, par exemple, si vous les modifiez en 50x50, vous obtiendrez un coin de la forme réduit à 24x24 - au lieu de la forme entière.
Viewportwidth/Viewportheight sont les dimensions du canevas pour les chemins SVG et la largeur/hauteur sont les dimensions intrinsèques réelles de l'ensemble pouvant être dessiné.