¿Android es compatible con SVG? algún ejemplo?
¿Android es compatible con SVG? algún ejemplo?
Respuestas:
La respuesta más completa es esta:
Para agregar soporte SVG a las versiones 2.x de la plataforma, tiene dos opciones básicas:
La primera opción está bien si solo está tratando de hacer que SVG funcione para usos personales o para un conjunto limitado (controlable) de usuarios. No es una gran opción si desea utilizar SVG mientras se dirige a una gran base de usuarios no controlada.
En el último caso, desea utilizar un polyfill. Hay muchas bibliotecas de JavaScript disponibles en la actualidad que pueden convertir SVG y renderizar en un lienzo. Dos ejemplos son:
Usando un polyfill, puede renderizar su SVG en un canavs en todas las versiones de Android 2.x.
Para obtener un ejemplo más completo de este enfoque, puede consultar esta publicación de blog que analiza el uso de canvg polyfill para hacer que los gráficos Kendo UI DataViz (basados en SVG) funcionen en Android 2.x. ¡Espero que ayude!
Hay una nueva biblioteca de código abierto que admite la carga y el dibujo de archivos SVG Basic 1.1: https://github.com/pents90/svg-android . El rendimiento es bueno ya que el dibujo real es manejado de forma nativa por un objeto android.graphics.Picture.
Actualmente, algunas personas, incluyéndome a mí, trabajan de forma independiente.
Puede encontrar una solución que funcione en estos artículos:
Android. ImageView con soporte SVG.
Android ImageView y Drawable con soporte SVG
Hay una nueva biblioteca (en desarrollo activo) androidsvg que permite incorporar imágenes svg directamente en los proyectos. Tiene la ventaja de definir un SVGImageView
que permite incorporar un svg directamente en el diseño xml.
Finalmente, incluir svg en Android es sencillo.
Más detalles: Publicación de desbordamiento de pila
Android admite elementos de diseño vectoriales: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
Y existe un convertidor de SVG a VectorDrawable de Android: http://inloop.github.io/svg2android/
He echado un vistazo breve a https://code.google.com/p/androidsvg/ . Hasta ahora se muestran todos los archivos svg que le lancé. Parece prometedor.
Acabo de lanzar un repositorio de Github y un repositorio de ejemplo para mi propia biblioteca TPSVG, que originalmente creé específicamente para una aplicación mía.
Sé que mi solución es algo dura, pero funciona muy bien, no requiere bibliotecas externas (al menos no en su código final) y es extremadamente rápida.
1) Simplemente tome una biblioteca de carga SVG existente, como por ejemplo svg-android-2 (que es una bifurcación de svg-android mencionada en otra respuesta, solo con más funciones y correcciones de errores): https://code.google.com / p / svg-android-2 /
2) Escriba una aplicación simple que no haga nada más que cargar y mostrar su imagen SVG.
3) Modifique la biblioteca de carga SVG, para que imprima el código Java que crea la clase Picture o lo guarde en una variable String.
4) Copie y pegue el código Java obtenido de esta manera en la aplicación que está escribiendo.
Para obtener más información sobre esta técnica y descargar un código fuente de muestra, vaya a mi blog: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html
Puede obtener un ejemplo práctico de esta técnica en Google Play aquí: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample
Aquí hay un ejemplo de una aplicación comercial creada con esta técnica (mapa del metro de Milán): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan
Observe lo rápido que se carga el mapa y lo bonito que se ve, incluso cuando está ampliado.
Echa un vistazo a Support vector drawable . Android Studio tiene una herramienta para convertir archivos SVG a archivos .XML.
al usar AppCompat con ImageView (o subclases como ImageButton y FloatingActionButton), podrá usar la nueva aplicación: atributo srcCompat para hacer referencia a elementos de diseño vectoriales (así como cualquier otro elemento de diseño disponible para android: src):
A partir de la biblioteca de soporte de Android 23.3.0, los elementos de diseño vectoriales de soporte solo se pueden cargar a través de la aplicación: srcCompat o setImageResource ()
Opera Mobile para Android admite svg y Opera Mini admite contenido svg estático.