所以我试图理解pathData语法以便通过xml创建一些矢量可绘制对象...
我可以创建任何正方形,但是我不明白如何创建圆形(例如椭圆形或圆形)。
谁能举一些圆形的例子:
解释每个pathData属性的作用?
谢谢!
最佳答案
关于路径的说明(anroid-vectordrawable中使用的SVG表示法):路径具有紧凑的编码。例如, M (用于“移至”)在初始数字x和y坐标之前,而 L (行至)在应该画线的点之前。其他命令字母( C , S , Q , T 和 A )位于用于绘制各种Bézier和椭圆曲线的数据之前。 Q 是二次贝塞尔曲线, Z 用于封闭路径。在所有情况下,绝对坐标都遵循大写字母命令,并且相对坐标在等效的小写字母之后使用。
SVG path notation。
命令: (绝对)和(相对)
名称:椭圆弧
参数:(rx ry x轴旋转大弧标志扫角标志x y)+
说明:从当前点绘制一个椭圆弧到
( x ,和)。大小和
椭圆的方向由两个半径定义
( rx , ry )和一个
x轴旋转,指示如何
椭圆整体相对于当前旋转
坐标系。中心( cx ,
椭圆的 cy )
自动满足
其他参数。 大弧标志和
扫描标志有助于自动
计算并帮助确定如何绘制圆弧。
在circle.xml
文件夹中使用此(res/drawable
):
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportHeight="64"
android:viewportWidth="64">
<path
android:fillColor="#ff0000"
android:pathData="M22,32
A10,10 0 1,1 42,32
A10,10 0 1,1 22,32 Z" />
</vector>
Parameters :(rx, ry x-axis-rotation large-arc-flag, sweep-flag x, y )
(10, 10 0 1, 1 42, 32 )
(10, 10 0 1, 1 22, 32 )
注意:可以消除多余的空格和逗号等分隔符。
两个弧线围成一个圆。
圆形是椭圆形的一种特殊情况,android:fillColor =“@ color/transparent”。