Android Vector Drawable XML路径数据怎么写 pathData语法
发布时间 - 2026-01-09 00:00:00 点击率:次pathData是Android Vector Drawable中定义图形路径的核心语法,类似SVG的d属性,通过大小写区分绝对/相对坐标命令(如M/m、L/l、C/c等)描述线条、曲线和弧线,支持空格或逗号分隔参数,需注意坐标单位、可读性及视口适配。Android 的 Vector Drawable 中 `pathData` 是定义图形路径的核心语法,它类似 SVG 的 `d` 属性,用一串命令和坐标描述线条、弧线、贝塞尔曲线等。写对 `pathData` 是画出正确图标的关键。
pathData 基本结构
格式为:命令字母 + 数值参数(空格或逗号分隔),命令区分大小写:
- 小写字母:表示相对坐标(相对于上一个点)
- 大写字母:表示绝对坐标(相对于画布原点 0,0)
- 常见命令可连写,如
M10,20 L30,40 C50,60 70,80 90,100
常用命令详解
M / m —— 移动到(moveTo),设置新路径起点
例:M100,100 表示从 (100, 100) 开始绘图;m20,30 表示从上一点右移 20、下移 30 的位置开始
L / l —— 直线到(lineTo),画一条直线段
例:L200,100 从当前点画直线到 (200, 100)
H / h —— 水平线到(horizontal line)
只指定 x 坐标,y 不变;H150 表示水平画到 x=150
V / v —— 垂直线到(vertical line)
只指定 y 坐标,x 不变;v-20 表示垂直向上移动 20
C / c —— 三次贝塞尔曲线(cubic Bézier)
格式:C x1,y1 x2,y2 x,y,两个控制点 + 一个终点
例:C50,0 100,50 100,100 从当前点出发,经 (50,0) 和 (100,50) 控制,到达 (100,100)
Q / q —— 二次贝塞尔曲线(quadratic Bézier)
格式:Q x1,y1 x,y,一个控制点 + 一个终点
A / a —— 椭圆弧线(arc)
格式:A rx,ry x-axis-rotation large-arc-flag,sweep-flag x,y
如:A20,20 0 0,1 60,60 表示:x 半径 20、y 半径 20,不旋转,小弧(0),顺时针(1),终点 (60,60)
Z / z —— 闭合路径(closePath)
自动画线回到路径起点,不带参数
实用技巧与注意事项
- 所有坐标单位是像素,但 vector drawable 会自动缩放适配,所以用整数+合理比例即可(如 24×24、48×48 基准)
- 命令和数字之间**空格可省略**(如
M10,20L30,40合法),但建议加空格提升可读性 - 逗号只用于分隔同一组的 x,y(如
M10,20),不能代替空格分隔不同命令 - Android Studio 的 Vector Asset Studio 可导入 SVG 自动生成 pathData,适合复杂图形
- 避免负坐标过大或超出 `viewportWidth`/`viewportHeight`,否则可能被裁剪
简单例子:画一个带弧角的「返回」箭头
这个路径先画箭头主干(L),再折角、回退、收尾闭合——实际中建议用设计工具导出再微调
# android
# svg
# 工具
# xml
# 值参数
# android studio
# 塞尔
# 相对于
# 画一
# 过大
# 不带
# 画出
# 自动生成
# 格式为
# 需注意
# 性及
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何在阿里云通过域名搭建网站?
Linux系统命令中screen命令详解
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何在云主机快速搭建网站站点?
如何确保西部建站助手FTP传输的安全性?
,交易猫的商品怎么发布到网站上去?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Mybatis 中的insertOrUpdate操作
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何用PHP快速搭建CMS系统?
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何使用Gate和Policy进行授权?(权限控制)
个人网站制作流程图片大全,个人网站如何注销?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
iOS UIView常见属性方法小结
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Android自定义控件实现温度旋转按钮效果
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何用西部建站助手快速创建专业网站?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
教学论文网站制作软件有哪些,写论文用什么软件
?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
新三国志曹操传主线渭水交兵攻略
历史网站制作软件,华为如何找回被删除的网站?
如何快速搭建高效WAP手机网站?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在香港服务器上快速搭建免备案网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何挑选高效建站主机与优质域名?
香港服务器选型指南:免备案配置与高效建站方案解析
制作企业网站建设方案,怎样建设一个公司网站?
如何在橙子建站上传落地页?操作指南详解
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel如何处理异常和错误?(Handler示例)
如何做网站制作流程,*游戏网站怎么搭建?
Laravel中的withCount方法怎么高效统计关联模型数量
如何快速生成专业多端适配建站电话?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
详解Android中Activity的四大启动模式实验简述
湖南网站制作公司,湖南上善若水科技有限公司做什么的?

