web-dev-qa-db-fra.com

Quel est l’impact de viewportwidth / height sur Android drawables

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?

36
angryITguy

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.

46
Paul LeBeau

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é.

13
pdegand59