所以我正在尝试理解pathData语法,以便通过XML创建一些矢量图形...
我能够创建任何正方形形状,但我就是无法理解如何创建圆形(例如椭圆形或圆形)。
有人可以给出一些圆形形状的示例:
- 圆形。
- 椭圆形。
- 空心圆/椭圆形(将其放在另一个形状上会导致此部分透明)。
并解释每个pathData属性的含义?
谢谢!
所以我正在尝试理解pathData语法,以便通过XML创建一些矢量图形...
我能够创建任何正方形形状,但我就是无法理解如何创建圆形(例如椭圆形或圆形)。
有人可以给出一些圆形形状的示例:
并解释每个pathData属性的含义?
谢谢!
在您的res/drawable
文件夹中使用此(circle.xml
):
<?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"。
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="108dp"
android:width="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<!--right half circle -->
<path
android:fillColor="#E1261D"
android:pathData="M54,0
A54,54 0 1,1 54,108Z" />
<!--left half circle -->
<path
android:fillColor="#E1261D"
android:pathData="M54,108
A54,54 0 1,1 54,0Z" />
</vector>
否则
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#E1261D"
android:pathData="M54,0
A54,54 0 1,1 53.99999,0Z" />
</vector>