Código de dibujo en línea SVG: quiero crear un editor de vectores (herramienta de dibujo) y cómo guardar la forma editada como un archivo en formato SVG.
, también conocidos como mapas de bits y mapas de píxeles, las imágenes se componen de píxeles y la cantidad de píxeles determinará la calidad de visualización y el tamaño del archivo de la imagen. Cuanto mayor sea la resolución de la imagen, más clara será la visualización y mayor será el espacio que ocupará el archivo. Cuando se amplía una imagen, se distorsiona. Se puede ver que toda la imagen está compuesta por muchos píxeles.
Gráficos vectoriales
Utilice XML para describir gráficos bidimensionales y programas de dibujo. Cuando las imágenes vectoriales se amplían o cambian de tamaño, la calidad de los gráficos no se perderá.
ltcanvasgtand
save (abreviatura de guardar)
canvas
Gráficos y tablas
svg Tanto Canvas como Canvas puede representar gráficos (como gráficos de barras, gráficos de dispersión, gráficos circulares, etc.). Entre las bibliotecas de gráficos comunes, echarts de Baidu se basa en Canvas y D3 se basa en svg.
El atributo xmlns define el espacio de nombres SVG (el atributo xmlns no es necesario si el SVG está incrustado y se sirve como una página HTML).
Uso
El elemento de ruta es una de las formas básicas más poderosas de SVG. No sólo puede crear otras formas básicas, sino que también puede crear muchas otras formas. Puede dibujar rectángulos (rectángulos rectos o rectángulos redondeados), círculos, óvalos, polilíneas, polígonos y algunas otras formas como curvas de Bézier y curvas cuadráticas.
La forma del elemento de ruta está definida por el atributo D, y el valor del atributo D es una secuencia de "parámetros de comando".
Los siguientes comandos se pueden utilizar para los datos de ruta: (ver detalles del comando)
Los cuatro parámetros de viewBox representan: valor mínimo del eje X; valor mínimo del eje y; altura.
Para escala global de svg
Una línea discontinua que representa el borde del dibujo. Los valores opcionales son: Ninguno,
Indica el desplazamiento inicial de la línea discontinua. Los valores opcionales incluyen:
Si el valor de Stroke-dasharray es muy grande y excede la longitud total de la ruta del trazo, y se agrega una animación CSS para cambiar el valor de Stroke-dashoffset, el trazo La pantalla se mostrará desde el principio durante un período de tiempo.
Serie de imágenes de Android (2): imagen SVG estática La imagen SVG es un formato de imagen que puede admitir escalas arbitrarias. Está definido por xml y dibujado por ruta en el lienzo, que es muy diferente de los mapas de bits tradicionales.
SVG ha sido popular en la interfaz durante mucho tiempo. En Android, Google empezó a admitirlo después de la versión 5.0. Después de que salió el 14, la compatibilidad fue un gran problema. Con el lanzamiento de la versión 23.2.0 del paquete 2016.2V7, existe una solución de compatibilidad relativamente completa.
No escribiré sobre el concepto de SVG, solo lo trataré como una doctrina.
Sin forzarlo, primero echemos un vistazo a qué son los gráficos vectoriales SVG en Android.
Mira, esta es una imagen vectorial SVG, un archivo xml y la vista previa está a la derecha. Hablemos primero de las ventajas de esto: sin distorsión en la escala y tamaño pequeño. Esta imagen SVG tiene sólo 970 bytes... poderosa e infinitamente mejor que las imágenes en formato png. Necesitamos adaptarnos a png, crear varios conjuntos, luego cambiar los nombres uno por uno y copiarlos en el proyecto. Con SVG, mamá ya no tiene que preocuparse por nuestra tarea. ...
Aquí es necesario explicar algunas etiquetas:
La siguiente es una descripción detallada del atributo:
Bien, comencemos a presentar SVG.
Primero, es necesario explicar dos conceptos: SVG y Vector.
SVG, también conocido como ScalableVectorGraphics, se ha utilizado ampliamente en el front-end.
Vector, en Android, se refiere a VectorDrawable, que es la imagen vectorial en Android.
Entonces se puede decir que Vector es la implementación de SVG en Android, porque Vector en Android no admite toda la sintaxis de SVG, y no es necesario, porque la sintaxis de SVG completa es muy complicada, pero la compatible La sintaxis SVG es suficiente, especialmente la sintaxis Path, que es casi el estándar para Vector en Android.
Android es compatible con SVG de forma simplificada. Al utilizar su etiqueta Path, se pueden implementar casi todas las demás etiquetas en SVG. Aunque puede resultar un poco complicado, estas cosas se pueden hacer con herramientas, por lo que no tienes que preocuparte de que sea complicado de escribir.
El comando de ruta se analiza de la siguiente manera:
Instrucciones admitidas:
M=moveto(MX, Y): mueve el pincel a la posición de coordenadas especificada.
L=lineto(LX,Y): dibuja una línea recta hasta la posición de coordenadas especificada.
H=horizontallineto(HX): dibuja una línea horizontal en la posición de la coordenada X especificada.
V=verticallineto(VY): dibuja una línea vertical en la posición de la coordenada Y especificada.
C = Curveto (cx1, y1, x2, y2, endx, endy): curva de Bézier cúbica.
S=smoothcurveto(SX2, Y2, ENDX, ENDY)
Q = Curva de Bézier cuadrática (qx, y, endx, endy): Curva de Bézier cuadrática.
t = veto de cour Belzier cuadrático suave(Tendx, Endy): mapeo
A = arco elíptico(ARX, ry, rotación x, bandera1, bandera2, x, y): arco .
Z=closepath(): Cierra la ruta.
El eje de coordenadas está centrado en (0, 0), el eje X está horizontalmente hacia la derecha y el eje Y está horizontalmente hacia abajo.
Todas las directivas distinguen entre mayúsculas y minúsculas. El posicionamiento absoluto en mayúsculas se refiere al sistema de coordenadas global; el posicionamiento relativo en minúsculas se refiere al sistema de coordenadas del contenedor principal.
Se puede omitir el espacio entre el comando y los datos.
Cuando el mismo comando aparece varias veces, solo se puede utilizar un comando.
Tenga en cuenta que al procesar 'M', solo mueve el pincel y no dibuja nada. También puede dibujar líneas discontinuas simultáneamente sobre la base que se indica más adelante.
Lo que los desarrolladores necesitan no es dominar completamente estas sintaxis, sino poder comprenderlas. Todo lo demás se puede implementar mediante herramientas.
Aquí hay un artículo sobre el dibujo de la etiqueta PathData de Androidvector, que describe en detalle el dibujo de rutas en SVG.
Vale, todas estas son cosas conceptuales. vamos a ver.
El uso de SVG se puede dividir en dos tipos. Una es una imagen vectorial SVG estática, que es la protagonista de este artículo y el contenido principal de este capítulo. La otra es la animación vectorial SVG, que es una aplicación avanzada de SVG. Agregar animación objectAnimator al SVG estático se usa ampliamente y es la práctica principal para realizar la interacción dinámica de androidicon.
Todos han visto la imagen SVG de arriba. Simplemente escribimos un archivo xml y usamos etiquetas para describir cómo dibujar el patrón que queremos, como el tamaño del lienzo, el color, la ruta, etc. y luego entréguelo al sistema para que lo dibuje.
Ahora echemos un vistazo a cómo se usa SVG en Android y cómo es compatible con versiones inferiores a 5.0.
Aunque SVG se ha utilizado en el front-end durante mucho tiempo, SVG ha sido compatible con Android desde 5.0. Los sistemas superiores a 5.0 son muy simples de usar, al igual que antes usaban imágenes PNG.
En primer lugar, la forma en que se transportan las imágenes SVG en Android es un archivo xml, por lo que las imágenes SVG que nos proporciona la interfaz de usuario no se pueden usar directamente.
Aquí Google nos proporciona el modo de carga.
Androidstudio puede usar svg directamente en la versión 2.3.3. Cree un nuevo proyecto SVGDemo y un nuevo archivo VectorAsset: app->;main->;new-gt;VectorAsset como se muestra en la figura: p>
p>
Seleccionamos LocalFile para importar el archivo svg local, le damos un nombre al archivo y hacemos clic en Siguiente->terminar de agregar uno. xml en el directorio dibujable.
Bueno, dicha imagen svg se ha agregado a nuestro proyecto y se puede usar directamente. Por supuesto, antes de eso, colocamos la imagen SVG en esa carpeta dibujable. Es necesario hablar de este tema:
Hay una cosa que hay que explicar. Podemos colocar el archivo vectorial svg en el directorio raíz dibujable. El sistema Android no escala la resolución de las imágenes vectoriales svg en función de cómo las almacena en diferentes carpetas dibujables, por lo que no tenemos que preparar varios conjuntos de imágenes como cuando usamos imágenes PNG. La dirección de almacenamiento predeterminada de las imágenes SVG importadas es el directorio raíz dibujable, por lo que podemos colocarlo aquí. Por supuesto, también podemos escribir imágenes SVG nosotros mismos, que son todas xml. Después de escribir la ruta nosotros mismos, podemos ver la vista previa. Generalmente, no la escribiremos nosotros mismos. Todo este es trabajo de la interfaz de usuario.
No importa. Los sistemas superiores a 5.0 pueden usar SVG como imágenes png normales. Puedes intentarlo.
La compatibilidad de la versión 4.x SVG se incrementará gradualmente en la configuración de acuerdo con los cambios en el alcance de la aplicación de SVG.
En este momento, la vista de imágenes no funcionará. Necesitamos usar AppCompatActivity o AppCompatImageView y luego importar el paquete V7.
Gradle requiere la siguiente configuración:
El sistema generará automáticamente los gráficos dibujables correspondientes para SVG en la versión 4. 10. En este momento, SVG no tiene la función de estiramiento infinito. El propósito de la configuración de Gradle es deshacerse de esto.
Por ejemplo:
Src no se puede usar para la configuración de recursos, pero se debe usar srcCompat. En este punto, podemos ver gráficos en lugar de características SVG.
En este momento, las configuraciones anteriores no son suficientes. Agregamos las siguientes configuraciones en la actividad o global donde está la vista.
Entonces esto no es suficiente. Debemos agregar un contenedor para la imagen SVG, como un selector, para que pueda usarse normalmente, como configurar la imagen para la vista de texto y configurar la imagen a través de atributos personalizados.
Este vc_halfstart_24dp es una imagen SVG.
También tenemos que agregar la biblioteca oficial de soporte vectorDrawable, que admite al menos 23.2.0.
Básicamente, esto no supone ningún problema.
Si SVG coincide con una vista personalizada, debemos leer el SVG y luego convertirlo en una ruta para dibujar. SVG es esencialmente un archivo xml, por lo que también se adopta la idea de analizar archivos xml. Por supuesto, existen otras ideas para convertir SVG en rutas.
SVG Foreplay - Make Your Vision Colorful proporciona algunas ideas, también puedes echarle un vistazo.
Quiero crear un editor de vectores (herramienta de dibujo) y cómo guardar los gráficos editados como archivos svg. Importe imágenes en formato SVG desde la página web anterior, conviértalas al formato JPEG en línea, luego descárguelas y guárdelas.
O:
Descargue la herramienta de visualización de SVG AdobeSVGViewer3.03