持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
了解SVG
如果想要一种放大缩小完全不失真的图片,那就是SVG了,SVG 全称
Scalable Vector Graphics, 是一种可以缩放的矢量图格式,并且在简单图形方面,Svg的内存占用要小的多。在多媒体时代,矢量图的重要作用越发显现。
什么是SVG
SVG 全称Scalable Vector Graphics,是一种矢量图格式,相对于PNG、JPG来说,它采用xml格式存储数据,根据不同的命令绘制出相应的图形,越来越多的浏览器也开始支持SVG。
SVG的基本标签
由于SVG是xml格式,所以内容中会有很多标签,比如常见的标签有
- 直线 line
- 圆 circle
- 椭圆 ellipse
- 路径 path
其中最复杂的是路径这个标签,曲线、笔迹、优美的图案都少不了路径的应用。其中有一个非常有名的曲线,叫贝塞尔曲线,也不用把它想的太复杂,它的出现是为了让曲线在电子屏幕上更光滑。
前端中使用SVG
- 在代码中写入SVG的标签
这种方法很简单,svg原本是一种xml格式,直接将xml内容放在 body 标签中即可。比如:
<!DOCTYPE html>
<html>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<line x1="0" y1="0" x2="100" y2="100"
style="stroke:rgb(0,0,0);stroke-width:10"/></svg>
</body>
</html>
- iframe 标签加载
直接将路径添加进iframe标签
<iframe src="xx.svg"></iframe>
- embed标签
<embed src="xx.svg" type="image/svg+xml" />
Andriod 使用SVG
如果是使用SVG本地文件,则需要进行转换。
Android 5.0 及以上系统中引入了VectorDrawable来支持矢量图(SVG),创建一个项目对着res点击右键,依次 New->Vector Asset,Clip Art是从安卓自带素材中选择,Local file是选择本地的素材,选择之后会在Drawable中生成一个xml文件,直接在ImageView中使用即可。
如果是想自己解析SVG中的xml标签,就需要彻底了解svg中的标签和Android中Path用法的对应,大部分的方法思想上是一致的,但如果要做一个完美加载svg库还是很困难。还是使用第三方的加载库吧。