VectorDrawable-pathdata

学习一点基础知识

1、支持的指令:

 M = moveto 相当于 android Path 里的moveTo(),用于移动起始点

 L = lineto 相当于 android Path 里的lineTo(),用于画线

 H = horizontal lineto 用于画水平线  、

 V = vertical lineto 用于画竖直线  

C = curveto 相当于cubicTo(),三次贝塞尔曲线  

S = smooth curveto 同样三次贝塞尔曲线,更平滑  

 Q = quadratic Belzier curve quadTo(),二次贝塞尔曲线  

T = smooth quadratic Belzier curveto 同样二次贝塞尔曲线,更平滑

 A = elliptical Arc 相当于arcTo(),用于画弧

 Z = closepath 相当于closeTo(),关闭path  

2、使用原则:  

①坐标轴为以(0,0)为中心,X轴水平向右,Y轴水平向下。

②所有指令大小写均可。大写绝对定位,参照全局坐标系;小写相对定位,参照父容器坐标系  

③指令和数据间的空格可以省略  

④同一指令出现多次可以只用一个  注意,’M’处理时,只是移动了画笔, 没有画任何东西。 它也可以在后面给出上同时绘制不连续线。  

3、详细指令分析  

3.1、L H V指令  绘制直线的指令是“L”,从当前点划线到给定点。 “L”之后的参数是一个点坐标,如“L 200 400”。 如果画水平线或垂直线,可以使用“H”和“V”指令,后面的参数是x(H指令)或y坐标(V指令)。  M 起点X,起点Y L(直线)终点X,终点Y H(水平线)终点X V(垂直线)终点Y  如:M 10,20 L 80,50 M 10,20 V 50 M 10,20 H 90    

3.2、A指令  允许不闭合。可以想像成是椭圆的某一段,共七个参数  A RX,RY,XROTATION,FLAG1,FLAG2,X,Y  RX,RY指所在椭圆的半轴大小  XROTATION指椭圆的X轴与水平方向顺时针方向夹角,可以想像成一个水平 的椭圆绕中心点顺时针旋转XROTATION的角度。  FLAG1只有两个值,1表示大角度弧线,0为小角度弧线。  FLAG2只有两个值,确定从起点至终点的方向,1为顺时针,0为逆时针  X,Y为终点坐标。  M 20,50 A 30,30,0,1 0 80,50 这个就是画一个下半圆。

 3.3 C指令 三次贝塞尔曲线。

演示实例:

<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/battery_charging.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="24dp"
    android:width="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<group android:name="rotationGroup"
android:pivotX="10.0"
android:pivotY="10.0"
android:rotation="15.0" >
<path android:name="vect"
   android:fillColor="#FF000000"
   android:pathData="M15.67,4 H14V2 h-4 v2 H8.33 C7.6,4 7,4.6 7,5.33 V9 h4.93L13,7v2h4V5.33C17,4.6 16.4,4 15.67,4z"
   android:fillAlpha=".3"/>
<path   android:name="draw"
    android:fillColor="#FF000000"
    android:pathData="M13,12.5h2L11,20v-5.5H9L11.93,9H7v11.67C7,21.4 7.6,22 8.33,22h7.33c0.74,0 1.34,-0.6 1.34,-1.33V9h-4v3.5z"/>
</group>
</vector>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超翔之逸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值