2 votes

Fichiers d'images svg Android

J'utilise le code ci-dessous pour rendre les images svg en imageview dans mon application Android.

    ImageView imageView = new ImageView(this);  
    final SVG svg = SVGParser.getSVGFromAsset(getAssets(), "start_4_480.svg");
   imageView.setImageDrawable(svg.createPictureDrawable());

lien : http://code.google.com/p/svg-Android/wiki/Tutorial Il fonctionne bien. Mais la taille d'une image est de 2 MB (la même image ne fait que quelques kbs en format png). J'ai beaucoup d'images de ce type. Cela augmente la mémoire de mon application.

J'ai donc pensé à utiliser des images au format svgz (svg compressé). Quelqu'un peut-il me dire comment rendre des images svgz directement dans une vue d'image dans Android. Merci de m'aider. Suggérez-moi également d'autres moyens d'adapter les images à différentes tailles d'écran et à différents formats de fichiers autres que svn qui rendent cela facile.

2voto

iagreen Points 4532

son a raison. Si vous le distribuez en tant que partie de l'APK, comme il semble que vous le fassiez, il sera compressé de toute façon, donc pas besoin de le compresser à nouveau.

Si vous voulez le charger à partir d'une ressource distante, vous pouvez envelopper votre InputStream dans un GZIPInputStream avant d'appeler le parseur.

public static SVG getSVGZFromInputStream(InputStream is) throws SVGParseException {
   SVG svg = null;

   try {
      GZIPInputStream gis = new GZIPInputStream(is);     
      svg = SVGParser.getSVGFromInputStream(gis);
   } catch (IOException e) {
      //handle IO error
   }

   return svg;
}

Pour répondre à votre deuxième question, avant d'abandonner le SVG pour un autre format de fichier, il est utile d'examiner si votre SVG peut être optimisé pour atteindre une taille plus acceptable. Pour des idées sur l'optimisation de SVG, voir la réponse à cette question Si votre SVG est toujours trop grand, la chose habituelle à faire est de revenir en arrière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X