web-dev-qa-db-fra.com

Quelle est la différence entre l’utilisation de vector drawable et un ensemble de .png pour les icônes dans Android?

Quels sont les avantages et les inconvénients de l'utilisation de vector drawables par rapport à l'utilisation d'un ensemble de .png pour les icônes du système Android?

S'ils sont destinés à deux choses différentes, qu'est-ce que c'est?

14
vleong

Un png est une image compressée. Il a une taille fixe. Si vous essayez de le rendre plus grand ou plus petit, vous devrez soit dupliquer, soit supprimer des données. Trop grand ou trop petit et ça n'a pas l'air correct (trop grand est pire qu'un trop petit).

Un vecteur pouvant être dessiné est une série de commandes lui indiquant comment dessiner quelque chose. Ces commandes redimensionnent, de sorte qu'un vecteur bien exécuté puisse être aussi beau en 1000x1000 qu’en 100x100. 

L'avantage d'un png est sa facilité de réalisation et ses performances relativement rapides. Un vecteur dessinable est plus lent (vous devez exécuter les commandes) et plus difficile d'en créer un bon. Mais ça pèse mieux. Si la mise à l'échelle n'est pas nécessaire, un png est probablement ce que vous voulez. Si c'est le cas, vous voudrez peut-être un vecteur.

Notez également que certains types d'images fonctionnent mieux pour les vecteurs que d'autres: une icône est un bon usage d'un vecteur. Une photo ne marcherait pas.

9
Gabe Sechan

Les dessins vectoriels réduisent la taille de votre apk puisque vous n'avez qu'une image par rapport à plusieurs dans différents dossiers. Ils évoluent également très bien, raison pour laquelle il vous suffit de créer un vecteur

L'inconvénient des vecteurs est qu'ils sont un peu lourds en performances, vous devez donc les utiliser à quelques endroits.

7
tyczj

Outre les facteurs d'échelle et d'espace, vous pouvez jouer et modifier en temps réel les informations vectorielles des objets pouvant être dessinés avec des éléments vectoriels, ce qui signifie que vous pouvez effectuer des opérations telles que des transformations, telles que la transformation d'une figure. Avec un ensemble de PNG, vous avez une représentation statique et c'est tout, vous ne pouvez pas jouer avec les formulaires, car ils ne sont que des bitmaps statiques (à moins que vous ne fassiez des choses difficiles avec eux). Découvrez cet exemple de morphing de chemin afin de savoir ce que vous pouvez obtenir. N'oubliez pas qu'avec un ensemble de tirables PNG, vous échangez rapidement la flexibilité et l'espace. Avec les tirables vectoriels, vous gagnez en flexibilité et en espace, mais vous perdez en rapidité (car les transformations vectorielles demandent beaucoup de ressources processeur, contrairement à la mise à l'échelle bitmap).

0
josemgu91