android - vectordrawables - xperia xz xperiablog
Soporte SVG en Android (11)
Acabo de publicar 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.
¿Android es compatible con SVG? algún ejemplo?
Actualmente, algunas personas, incluido yo, trabajamos en él de forma independiente.
Puede encontrar una solución de trabajo en estos artículos:
Androide. ImageView con soporte SVG.
Android ImageView y Drawable con soporte SVG
Android admite vectores arrastrables: https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
Y existe un SVG de Android para Convertidor VectorDrawable: http://inloop.github.io/svg2android/
Echa un vistazo a Support vector drawable . Android studio tiene una herramienta para convertir archivos SVG a archivos .XML.
al utilizar AppCompat con ImageView (o subclases como ImageButton y FloatingActionButton), podrá utilizar la nueva aplicación: atributo srcCompat para hacer referencia a los dibujos vectoriales (así como a cualquier otro dibujo disponible para Android: src):
A partir de Android Support Library 23.3.0, los vectores arrastrables de soporte solo se pueden cargar a través de la aplicación: srcCompat o setImageResource ()
Hay una nueva biblioteca de código abierto que admite cargar y dibujar archivos SVG Basic 1.1: https://github.com/pents90/svg-android . El rendimiento es bueno ya que el dibujo real se maneja de forma nativa mediante un objeto android.graphics.Picture.
He echado un vistazo breve a androidsvg . Hasta el momento se muestran todos los archivos svg que arrojé. Parece prometedor.
La respuesta más completa es esta:
- El navegador predeterminado de Android 2.x no es compatible nativamente con SVG.
- Los navegadores predeterminados Android 3+ SI son compatibles con SVG.
Para agregar soporte SVG a las versiones 2.x de la plataforma, tiene dos opciones básicas:
- Instale un navegador más capaz (como Firefox u Opera Mobile, ambos compatibles con SVG)
- Utilice un relleno de JavaScript que pueda analizar SVG y renderizarlo en un lienzo de HTML5
La primera opción está bien si solo intentas hacer que SVG funcione para uso personal o un conjunto limitado (controlable) de usuarios. No es una gran opción si quiere usar SVG mientras apunta a una gran base de usuarios no controlados.
En el caso posterior, desea utilizar un relleno policristalino. Actualmente, hay muchas bibliotecas de JavaScript disponibles que pueden copiar SVG y representar en un lienzo. Dos ejemplos son:
Utilizando un polyfill, puedes renderizar tu 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 del polilíndrico canvg para hacer que los gráficos Kendo UI DataViz (basados en SVG) funcionen en Android 2.x. ¡Espero que ayude!
Sé que mi solución es algo hardcore, pero funciona muy bien, no requiere ninguna biblioteca externa (al menos no en tu 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 un fork de svg-android mencionado en otra respuesta, solo que con más características y correcciones de errores): https://code.google.com/p/svg-android-2/
2) Escribe una aplicación simple que no hará más que cargar y mostrar tu imagen SVG.
3) Modifique la biblioteca de carga de SVG, para que imprima el código de Java que crea la clase de imagen o la guarda en una variable de cadena.
4) Copie y pegue el código de Java obtenido de esta manera en la aplicación que está escribiendo.
Para obtener más información sobre esta técnica y descargar el 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 de 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 qué tan rápido se carga el mapa y qué bonito se ve, incluso cuando está magnificado.
Opera Mobile para Android es compatible con svg, y Opera Mini es compatible con el contenido svg estático.
Firefox para Android es compatible con 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.
Por último, incluir svg en Android es sencillo.
Más detalles: Publicación de desbordamiento de pila