Android L中Google为我们提供了一种新的Drawable-VectorDrawable,他支持SVG矢量图,利用它我们可以实现更
SVG Path Data命令解释(注意:每个命令都有大小写形式,大写代表后面的参数是绝对坐标,小写表示相对坐标,每个参数之间用空格或逗号区分):
M/m命令:moveto移动到绘制点,后面跟上坐标系点对即可。
Z/z命令:closepath一段路径等的闭合点,无参数。
L/l命令:lineto绘制一个点到另一个点的直线,多个坐标对可以绘制折线,后面跟上坐标系点对即可。
H/h命令:lineto从当前点到指定x点绘制水平直线,多个x无意义,后面跟坐标系x点即可。
V/v命令:lineto从当前点到指定x点绘制垂直直线,多个y无意义,后面跟坐标系y点即可。
C/c命令:cubic bezier三次贝塞尔曲线。
S/s命令:cubic bezier三次贝塞尔曲线。
Q/q命令:quatratic bezier二次贝塞尔曲线。
T/t命令:quatratic bezier二次贝塞尔曲线。
A/a命令:elliptical arc圆弧线。
VectorDrawable的创建可以通过一个节点的XML进行定义,下面我们来看看这些相关节点属性的含义:
<vector>:定义一个Vector Drawable。
android:name 定义这个VectorDrawable的名字;
android:width 定义本质的几何宽度,尺寸标准随意,一般为dp;
android:height 定义本质的几何高度,尺寸标准随意,一般dp;
android:viewportWidth 定义viewport宽度,viewport是将path绘制在上面的一个虚拟画布;
android:viewportHeight 定义viewport高度,同上;
android:tint 定义Drawable的着色,默认没有色彩;
android:tintMode 定义着色模式,默认是src_in;
android:autoMirrored 定义图片是否需要镜像反转,当布局方向是RTL,即从右到左布局时才有用;
android:alpha 设置图片的透明度;
<group>:定义一个Path组或者子组。
android:name 定义组的名字;
android:rotation 定义组的旋转角度;
android:pivotX 定义缩放或者旋转中轴点x坐标,是虚拟画布中的坐标;
android:pivotY 同上,定义y坐标;
android:scaleX 定义缩放x维;
android:scaleY 定义缩放y维;
android:translateX 定义x缩放,是虚拟画布中的坐标;
android:translateY 定义y缩放,是虚拟画布中的坐标;
<path>:定义一个被绘制的Path。
android:name 定义path的名字;
android:pathData 定义路径采用了SVG文件里d标签中的path值,这些值绘制在虚拟画布上;
android:fillColor 定义路径填充颜色;
android:strokeColor 定义path的外轮廓颜色;
android:strokeWidth 路径的宽度;
android:strokeAlpha 一个路径的透明度;
android:fillAlpha 全路径透明度;
android:trimPathStart 开始路径的百分比,0-1;
android:trimPathEnd 结束路径的百分比,0-1;
android:trimPathOffset 转换区域0-1;
android:strokeLineCap 设置线的顶路径,圆还是方等;
android:strokeLineJoin 设置线连接处路径方式;
android:strokeMiterLimit 设置线的修饰;
<clip-path>:定义路径裁剪,只适用于当前组或者子项。
android:name 定义裁剪路径的名字;
android:pathData 定义路径采用了SVG文件里d标签中的path值;