Android-5.0新API-21级别支持在xml里面创建矢量图片

Android-5.0新API-21级别支持在xml里面创建矢量图片:

定义在XML里面使用<vector> </vector>标签元素之间,其中可以有这些属性:
<vector>

用来定义一个矢量图片。

android:name
D定义这个矢量图片的名称.
android:width
定义这个矢量图片的屏幕无关像素宽度。支持所有的尺寸单位,一般使用dp。getIntrinsicWidth会获取=这个值 x 对应屏幕的密度density。
android:height
定义这个矢量图片的屏幕无关像素高度。支持所有的尺寸单位,一般使用dp。getIntrinsicHeight会获取=这个值 x 对应屏幕的密度density。
android:viewportWidth
定义视口的宽度。视口是一个用来画path的虚拟画布。
android:viewportHeight
定义视口的高度。视口是一个用来画path的虚拟画布。
android:tint
定义这个矢量图片着色的颜色,默认没有设置着色。
android:tintMode
定义这个矢量图片着色的模式,默认设置着色模式是src_in。
着色模式有这些:
PorterDuff.Mode ADD Saturate(S + D)
PorterDuff.Mode CLEAR [0, 0]
PorterDuff.Mode DARKEN [Sa + Da – Sa*Da, Sc*(1 – Da) + Dc*(1 – Sa) + min(Sc, Dc)]
PorterDuff.Mode DST [Da, Dc]
PorterDuff.Mode DST_ATOP [Sa, Sa * Dc + Sc * (1 – Da)]
PorterDuff.Mode DST_IN [Sa * Da, Sa * Dc]
PorterDuff.Mode DST_OUT [Da * (1 – Sa), Dc * (1 – Sa)]
PorterDuff.Mode DST_OVER [Sa + (1 – Sa)*Da, Rc = Dc + (1 – Da)*Sc]
PorterDuff.Mode LIGHTEN [Sa + Da – Sa*Da, Sc*(1 – Da) + Dc*(1 – Sa) + max(Sc, Dc)]
PorterDuff.Mode MULTIPLY [Sa * Da, Sc * Dc]
PorterDuff.Mode OVERLAY
PorterDuff.Mode SCREEN [Sa + Da – Sa * Da, Sc + Dc – Sc * Dc]
PorterDuff.Mode SRC [Sa, Sc]
PorterDuff.Mode SRC_ATOP [Da, Sc * Da + (1 – Sa) * Dc]
PorterDuff.Mode SRC_IN [Sa * Da, Sc * Da]
PorterDuff.Mode SRC_OUT [Sa * (1 – Da), Sc * (1 – Da)]
PorterDuff.Mode SRC_OVER [Sa + (1 – Sa)*Da, Rc = Sc + (1 – Sa)*Dc]
PorterDuff.Mode XOR [Sa + Da – 2 * Sa * Da, Sc * (1 – Da) + (1 – Sa) * Dc]
android:autoMirrored
定义这个矢量图片在当布局方向是 RTL (right-to-left)的时候,是否需要把图片镜像显示。
android:alpha
定义这个矢量图片的透明度。

<group>
定义一组path或者子group,附加矩阵变换信息。矩阵变换是定义在和前面所述的视口一样的坐标系。而且矩阵变换在应用的时候是有序的:先缩放,再旋转,再位移。

android:name
定义group的名称。
android:rotation
定义这个group旋转的角度。
android:pivotX
对于缩放和旋转,定义这个group的枢轴的X坐标。定义在和前面所述的视口一样的坐标系。
android:pivotY
对于缩放和旋转,定义这个group的枢轴的Y坐标。定义在和前面所述的视口一样的坐标系。
android:scaleX
定义沿着枢轴X坐标轴缩放的总比例。
android:scaleY
定义沿着枢轴Y坐标轴缩放的总比例。
android:translateX
定义沿着枢轴X坐标轴位移距离。定义在和前面所述的视口一样的坐标系。
android:translateY
定义沿着枢轴Y坐标轴位移距离。定义在和前面所述的视口一样的坐标系。

<path>
定义画的paths

android:name
定义path的名称。
android:pathData
定义path的路径数据。这是使用svg语法的字符串。
Defines path string. This is using exactly same format as “d” attribute in the SVG’s path data. This is defined in the viewport space.
android:fillColor
定义path里面的填充颜色(默认没有填充色)。
android:strokeColor
定义path画的时候笔画颜色(默认没有颜色)。
android:strokeWidth
定义path画的时候笔画宽度,这个宽度的之间才是笔画中心线。比如圆形的笔画宽度为4,,圆的半径为10,则实际圆形显示半径为12.
android:strokeAlpha
定义path画的时候笔画透明度。
android:fillAlpha
定义path里面的填充透明度。
android:trimPathStart
定义截取path开始系数,范围是0到1.
The fraction of the path to trim from the start, in the range from 0 to 1.
android:trimPathEnd
定义截取path结束系数,范围是0到1.
The fraction of the path to trim from the end, in the range from 0 to 1.
android:trimPathOffset
定义截取path的偏移值(允许保护开始和结束),范围是0到1.
Shift trim region (allows showed region to include the start and end), in the range from 0 to 1.
android:strokeLineCap
对于画笔Pen,可以设置线帽,也就是线的两端的样式,两端可以显示为不同的形状,如三角形,圆形,菱形,无形状等等,这就是LineCap的设置,
http://www.myfirm.cn/News/dotNetGUIAPI/20080314012821434.html
这里可以设置为三种:butt, round, square.
Sets the linecap for a stroked path: butt, round, square.
android:strokeLineJoin
通过此 Pen 绘制的两条连续直线的端点的联接样式。
这里可以设置为三种:miter,round,bevel.
Sets the lineJoin for a stroked path: miter,round,bevel.
android:strokeMiterLimit
定义笔画path的拐角长度的限制
Sets the Miter limit for a stroked path.

<clip-path>
定义一个当前剪切的path
Defines path to be the current clip.

android:name
定义剪切path的名称。
Defines the name of the clip path.
android:pathData
定义剪切path的svg数据字符串。
Defines clip path string. This is using exactly same format as “d” attribute in the SVG’s path data.

 

svg的path语法

http://commons.oreilly.com/wiki/index.php/SVG_Essentials/Paths#Elliptical_Arc