J'ai trouvé une myriade de bibliothèques afin d'utiliser svg dans Android et d'éviter la création frustrante de résolutions différentes et la suppression de fichiers pour chaque résolution. Cela devient très gênant lorsque l'application contient de nombreuses icônes ou images.
Quelqu'un peut-il être aussi aimable de donner un processus pas à pas de la bibliothèque la plus simple à utiliser pour utiliser SVG dans Android, je suis sûr que cela en aidera de nombreux autres.
J'utilise aussi Android Studio et Illustrator pour générer mes icônes et mes images.
Vous devez d’abord importer les fichiers svg
en suivant les étapes simples.
Si une image est disponible sur votre ordinateur, sélectionnez le fichier local svg
. Après cela, sélectionnez le chemin de l'image et une option permettant de modifier la taille de l'image est également disponible sur le côté droit de la boîte de dialogue si vous le souhaitez. de cette manière, svg
l'image est importée dans votre projet. Pour utiliser cette image, suivez la même procédure
@drawable/yourimagename
PDATE: NE PAS utiliser cette ancienne réponse, utilisez plutôt ceci: https://stackoverflow.com/a/39266840/4031815
Ok, après quelques heures de recherche, j’ai trouvé que svg-Android était assez facile à utiliser, je vous laisse donc ici des instructions étape par étape:
télécharger lib de: https://code.google.com/p/svg-Android/downloads/list La dernière version au moment de l'écriture est la suivante: svg-Android-1.1.jar
Mettez le bocal dans lib
dir.
Enregistrez votre fichier * .svg dans res/drawable
dir (dans illustrator, il suffit de cliquer sur Enregistrer sous et de sélectionner svg)
Code de ce qui suit dans votre activité en utilisant la bibliothèque svg:
_ImageView imageView = (ImageView) findViewById(R.id.imgView);
SVG svg = SVGParser.getSVGFromResource(getResources(), R.drawable.example);
//The following is needed because of image accelaration in some devices such as samsung
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
imageView.setImageDrawable(svg.createPictureDrawable());
_
Très facilement, j'ai créé une classe simple pour contenir le code passé et réduire le code passe-partout, comme ceci:
_import Android.app.Activity;
import Android.view.View;
import Android.widget.ImageView;
import com.larvalabs.svgandroid.SVG;
import com.larvalabs.svgandroid.SVGParser;
public class SvgImage {
private static ImageView imageView;
private Activity activity;
private SVG svg;
private int xmlLayoutId;
private int drawableId;
public SvgImage(Activity activity, int layoutId, int drawableId) {
imageView = (ImageView) activity.findViewById(layoutId);
svg = SVGParser.getSVGFromResource(activity.getResources(), drawableId);
//Needed because of image accelaration in some devices such as samsung
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
imageView.setImageDrawable(svg.createPictureDrawable());
}
}
_
Maintenant, je peux l'appeler comme ça en activité:
_ SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain);
SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder);
SvgImage oceanSVG = new SvgImage(MainActivity.this, R.id.oceanImageView, R.drawable.ocean);
SvgImage fireSVG = new SvgImage(MainActivity.this, R.id.fireImageView, R.drawable.fire);
SvgImage windSVG = new SvgImage(MainActivity.this, R.id.windImageView,R.drawable.wind);
SvgImage universeSVG = new SvgImage(MainActivity.this, R.id.universeImageView,R.drawable.universe);
_
Android Studio prend en charge le format SVG à partir de à partir de la version 1.4
Voici une vidéo sur comment importer .
Plutôt que d’ajouter des bibliothèques qui augmentent la taille de votre apk, je vous suggère de convertir Svg en drawable en utilisant http://inloop.github.io/svg2Android/ . et ajoutez vectorDrawables.useSupportLibrary = true
en dégradé,
Essayez le plugin SVG2VectorDrawable. Allez dans Préférences-> Plugins-> Parcourir les plugins et installez SVG2VectorDrawable. Idéal pour convertir les fichiers SAG en fichiers vectoriels. Une fois que vous avez installé, vous trouverez une icône pour cela dans la section de la barre d’outils, juste à droite de l’icône d’aide (?).
1.1, vous pouvez le faire avec ce site: http://inloop.github.io/svg2Android/ mais il ne supporte pas toutes les fonctionnalités de SVG comme certains dégradés.
1.2, vous pouvez convertir via Android studio, mais certaines fonctionnalités ne prenant en charge que l’API 24 et les versions ultérieures peuvent également être utilisées pour créer votre application sur des appareils plus anciens.
et ajoutez vectorDrawables.useSupportLibrary = true
dans le fichier Gradle et utilisez comme ceci:
<Android.support.v7.widget.AppCompatImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:srcCompat="@drawable/ic_item1" />
ajoutez ce code dans la classe d'application:
public void onCreate() {
SVGLoader.load(this)
}
et utilisez le SVG comme ceci:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_Android_red"/>