Vector Asset中文名为矢量资源,在android studio中可以直接使用,当我们需要一些起导向作用的图片的时候,我们就可以直接调用Vector Asset。而且Vector Asset有一个特别好的优点就是不会出现图片失真的情况。
Vecto Assetr是Android 5.0之后新增加的一项功能,目前已经可以兼容到Android 5.0之前的版本。但使用过程中依然还是可能产生一些兼容性的问题。建议大家把Android studio升级到5.0之后的版本。
注意:最好将生成的vector drawable资源放在drawable目录下或drawable-anydpi目录下。
1.外部软件制作
(1)下载软件Vector Magic:
官网:https://vectormagic.com/
(2)准备一个图标,最好比较简单,不然导出的数据会非常大。用软件制作一个成Vector Asset(矢量资源),保存文件类型为SVG格式,处理完了之后会得到一***.SVG文件
(3)打开http://inloop.github.io/svg2android/将上一步生成好的一个或者多个SVG 文件拖入,然后下载下来
(4)将下载好的xml文件放入 res/drawable里
注意:软件生成的Vector Asset文件可以通过步骤(4)直接添加到drawable中,也可以在步骤(2)时通过Android studio中的Configure Vector Asset 功能添加。具体步骤在接下来的会讲到
2.在Android studio导入Vector Asset文件
Android studio中有自带的Vector Asset文件,在Project文件下的res目录下的drawable目录上单击右键,选择New目录下的Vector Asset,弹出Asset Studio对话框(也可以右键res目录添加,最后生成的资源默认的路径是一样的)
进入配置矢量资源界面
(1)当Asset Type选择到Clip Art时,是要导入 Android Studio自带的Vector Asset。
Name:xml文件名称。
Size:设置矢量图的大小。
Color:设置矢量图的颜色。
Opacity:设置不透明度。
Enable auto mirroring for RTL layout:为RTL布局启用自动镜像(从Android 4.2开始,Android SDK支持一种从右到左(RTL,Right-to-Left)UI布局的方式)。
双击Clip Art后面的图标就会进入Vector Asset选择界面,可以根据读者自身的喜好选择资源文件。
(2)当Asset Type选择到Local file时,是要导入本地的SVG格式图片或者PSD格式图片,可以直接导入上文中外部软件制作的第二步制作的文件 Name:xml文件名称
Path:选择本地矢量图(SVG或者PSD格式)
Size:设置矢量图的大小
Opacity:设置不透明度
Enable auto mirroring for RTL layout:为RTL布局启用自动镜像
上面不管哪一个,选择好图片按Next再按Finish就创建完成了,然后去调用文件就可以
三.详解SVG1.SVG介绍
SVG 即可缩放矢量图形 (Scalable Vector Graphics) ,是使用 XML 来描述二维图形和绘图程序的语言,其定义遵循 W3C 标准。在 2003 年 1 月,SVG 1.1 被确立为 W3C 标准。使用 SVG 的优势在于:
SVG 可被非常多的工具读取和修改(比如记事本)。
SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
SVG 是可伸缩的。
SVG 图像可在任何的分辨率下被高质量地打印。
SVG 可在图像质量不下降的情况下被放大。
SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)。
SVG 可以与 Java 技术一起运行。
SVG 是开放的标准。
SVG 文件是纯粹的 XML。
2.命令介绍
可用的命令如下:
A = elliptical Arc(A RX,RY,XROTATION,large-arc-flag,sweep-flag,X,Y):弧线。
C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY) :三次贝赛曲线。
H = horizontal lineto(H X):画水平线到指定的X坐标位置。
L = lineto(L X,Y):画直线到指定的坐标位置。
M = moveto(M X,Y):将画笔移动到指定的坐标位置。
Q=quadraticBelziercurve(QX,Y,ENDX,ENDY):二次贝赛曲线。
S = smooth curveto(S X2,Y2,ENDX,ENDY):同样三次贝塞尔曲线,更平滑。
T=smoothquadraticBelziercurveto(TENDX,ENDY):同样二次贝塞尔曲线,更平滑。
V = vertical lineto(V Y):画垂直线到指定的Y坐标位置。
Z = closepath():关闭路径。
以上所有命令都可以用小写字母。大写字母是基于原点的坐标系(偏移量),即绝对位置;小写字母是基于当前点坐标系(偏移量),即相对位置
**注:**PSD格式是Adobe公司的图形设计软件Photoshop的专用格式。PSD文件可以存储成RGB或CMYK模式,还能够自定义颜色数并加以存储,还可以保存Photoshop的图层、通道、路径等信息,是目前唯一能够支持全部图像色彩模式的格式。
作者:guo.714