usar tool studio library error convert android android-activity androidsvg

tool - La forma más fácil de usar svg en Android?



svg imageview android (6)

ACTUALIZACIÓN: NO use esta respuesta anterior, mejor use esto: https://stackoverflow.com/a/39266840/4031815

Ok, después de algunas horas de investigación, encontré que svg-android es bastante fácil de usar, así que dejo aquí las instrucciones paso a paso:

  1. descargue lib de: https://code.google.com/p/svg-android/downloads/list última versión al momento de escribir esta es: svg-android-1.1.jar

  2. Poner jar en lib dir.

  3. Guarde su archivo * .svg en dir res/drawable (en Illustrator es tan fácil como presionar Guardar como y seleccionar svg)

  4. Codifique lo siguiente en su actividad utilizando la biblioteca 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());



Puede reducir el código repetitivo como este

Muy fácil, hice una clase simple para contener código pasado y reducir el código repetitivo, como este:

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()); } }

Ahora puedo llamarlo así en actividad:

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);

He encontrado una gran cantidad de bibliotecas para usar svg en Android y evitar la creación frustrante de diferentes resoluciones y la caída de archivos para cada resolución, esto se vuelve muy molesto cuando la aplicación tiene muchos íconos o imágenes.

¿Alguien puede ser tan amable de dar un proceso paso a paso de la biblioteca más simple de usar para usar SVG en Android? Estoy seguro de que esto también ayudará a muchos otros.

También uso Android Studio e Illustrator para generar mis iconos e imágenes.


  1. necesitas convertir SVG a XML para usar en un proyecto de Android.

1.1 puede hacer esto con este sitio: http://inloop.github.io/svg2android/ pero no admite todas las características de SVG como algunos gradientes.

1.2 puede convertir a través de Android Studio, pero puede usar algunas características que solo son compatibles con API 24 y superior que pueden bloquear su aplicación en dispositivos más antiguos.

y agregue vectorDrawables.useSupportLibrary = true en el archivo gradle y use así:

<android.support.v7.widget.AppCompatImageView android:layout_width="match_parent" android:layout_height="match_parent" app:srcCompat="@drawable/ic_item1" />

  1. use esta biblioteca https://github.com/MegatronKing/SVG-Android que admite estas características: https://github.com/MegatronKing/SVG-Android/blob/master/support_doc.md

agregue este código en la clase de aplicación:

public void onCreate() { SVGLoader.load(this) }

y usa el SVG así:

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_android_red"/>



En lugar de agregar bibliotecas que aumenten el tamaño de tu apk, te sugeriré que conviertas Svg a dibujable usando http://inloop.github.io/svg2android/ . y agregue vectorDrawables.useSupportLibrary = true en gradle,


Primero necesita importar archivos svg siguiendo simples pasos.

  1. Haga clic derecho en dibujable
  2. Haga clic en nuevo
  3. Seleccionar activo de vector

Si la imagen está disponible en su computadora, seleccione el archivo svg local. Después de eso, seleccione la ruta de la imagen y una opción para cambiar el tamaño de la imagen también está disponible en el lado derecho del diálogo si lo desea. de esta manera, la imagen svg se importa en su proyecto. Después de eso, para usar esta imagen, utilice el mismo procedimiento

@drawable/yourimagename


Pruebe el complemento SVG2VectorDrawable. Vaya a Preferencias-> Complementos-> Examinar complementos e instale SVG2VectorDrawable. Ideal para convertir archivos caídos a vectores dibujables. Una vez que haya instalado, encontrará un icono para esto en la sección de la barra de herramientas a la derecha del icono de ayuda (?).