Utiliser un SVG comme arrière-plan pouvant être dessiné dans Android
Je suis en train d'utiliser une image SVG (créé à l'aide d'Inkscape et enregistré au format SVG) comme arrière-plan pour mon application. Je suis en train de le faire à l'aide de la svg-android
de la bibliothèque. J'ai un fichier appelé background.svg
dans res/raw
. Mon code ressemble à ceci:
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.background);
Drawable pictureDrawable = svg.createPictureDrawable();
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
LinearLayout backgroundLayout = (LinearLayout) findViewById(R.id.background);
bitmapDrawable.setTileModeX(Shader.TileMode.REPEAT);
backgroundLayout.setBackgroundDrawable(bitmapDrawable);
Toutefois, lorsque mon application se lance, rien ne montre jusqu'à ce que le fond (autre que la couleur de fond de la mise en page). Ma mise en page fichier xml est comme suit:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#aacceeff"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
>
</LinearLayout>
</LinearLayout>
Mise à JOUR
Il semble qu'il y ait un problème avec mon fichier SVG. Il peut être dû au fait que toutes les fonctionnalités ne sont pas pris en charge.
source d'informationauteur Vivin Paliath
Vous devez vous connecter pour publier un commentaire.
Le svg-projet android n'a pas été mis à jour depuis plus d'un an et il ne prend pas en charge SVG1.2 svgs généré par Inkscape (open-source) ne sont pas pris en charge.
Cependant, il est à nouveau android svg bibliothèque: AndroidSVG
Ils sont sur la version 1.2 et le travail sur la 1.3 est actuellement en cours. Y compris un peu le pot de la bibliothèque, on peut par programmation comprennent svgs dans les applications android. Presque toutes les fonctionnalités svg sont inclus. Je suis encore à trouver un svg que j'ai été incapable d'intégrer l'utilisation de cette bibliothèque.
Si vous incluez androidsvg à partir de la source (hg clone) dans votre projet comme un module de la bibliothèque vous obtenez le SVGImageView classe, qui est une extension de l'ImageView laquelle vous pouvez ajouter svg pour votre projet à l'aide de xml fichiers de mise en page comme ceci:
Que c'est. Tout ce que vous devez faire est de placer
filename.svg
dans le dossier des actifs, et vous êtes bon pour aller.Il prend en charge l'API 8 et ci-dessus. Il y a eu quelques problèmes lors de l'utilisation de l'API < 11 mais j'ai été capable de les corriger. J'ai posté comme les questions sur la page du projet, les auteurs ont répondu en quelques minutes. Ils ont été ajoutées à la prochaine révision. Si vous avez des problèmes de regarder les problèmes résolus, faute de quoi, je suis disponible pour répondre à des questions ici.
P. S. La documentation et des exemples sur la page du projet sont excellentes et la bibliothèque est une joie de travailler avec. Android et svg sont un puissant mélange.
J'ai essayé un exemple en utilisant le code suivant et il est montre le fond correctement:
Avez-vous essayé avec un autre fichier svg?