Android vector Path Data画图详解
SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写。在xml文件中的标签是,画出的图形可以像一般的图片资源使用,例子如下:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="200.0"
android:viewportWidth="200.0"
android:width="24dp">
<path
android:fillColor="#fff"
android:pathData="M99.93,180.25 L99.93,180.25c-6.14,0 -10.85,-4 -13.85,-7 -7.11,-7.11 -56.05,-66.03 -59.82,-70.57 -8.87,-8.97 -13.75,-20.8 -13.75,-33.36 0,-12.65 4.95,-24.56 13.94,-33.55l1.26,-1.26c8.99,-8.99 20.94,-13.94 33.65,-13.94 12.71,0 24.66,4.95 33.65,13.94 0.21,0.21 0.4,0.43 0.57,0.66 0.01,0 1.61,2 4.18,2 2.69,0 3.9,-1.59 4.02,-1.77 0.23,-0.38 0.41,-0.58 0.72,-0.89 8.99,-8.99 20.94,-13.94 33.65,-13.94 12.71,0 24.66,4.95 33.65,13.94l1.26,1.26c8.99,8.99 13.94,20.9 13.94,33.55 0,12.55 -4.88,24.38 -13.74,33.35 -3.77,4.58 -51.29,62.4 -59.47,70.58C110.78,176.25 106.08,180.25 99.93,180.25zM61.36,31.7c-9.74,0 -18.89,3.79 -25.78,10.68l-1.26,1.26c-6.88,6.89 -10.68,16 -10.68,25.67 0,9.67 3.79,18.79 10.68,25.67 0.12,0.12 0.24,0.25 0.35,0.38 18.1,21.81 53.79,64.5 59.29,70 2.48,2.48 4.49,3.74 5.98,3.74 1.85,0 4.28,-2.03 5.98,-3.74 6.36,-6.37 41.32,-48.56 58.91,-69.98 0.12,-0.14 0.24,-0.28 0.37,-0.4 6.88,-6.89 10.68,-16 10.68,-25.67 0,-9.67 -3.79,-18.79 -10.68,-25.67l-1.26,-1.26c-6.88,-6.88 -16.04,-10.68 -25.78,-10.68 -9.58,0 -18.6,3.67 -25.45,10.36 -1.37,1.83 -5.44,6.24 -12.95,6.24 -7.19,0 -11.57,-4.59 -12.84,-6.14C80.05,35.41 70.99,31.7 61.36,31.7zM36.75,66.09c-0.24,0 -0.49,-0.03 -0.74,-0.1 -1.48,-0.41 -2.35,-1.94 -1.94,-3.42 1.31,-4.78 3.88,-9.18 7.42,-12.72l0.78,-0.78c7.1,-7.1 17.18,-9.97 26.96,-7.69 1.5,0.35 2.43,1.85 2.08,3.34 -0.35,1.5 -1.85,2.43 -3.34,2.08 -7.91,-1.84 -16.04,0.48 -21.76,6.2l-0.78,0.78c-2.86,2.86 -4.93,6.41 -5.99,10.26C39.09,65.28 37.97,66.09 36.75,66.09zM81.08,53.82c-0.71,0 -1.42,-0.27 -1.97,-0.82 -0.93,-0.93 -1.95,-1.79 -3.02,-2.55 -1.26,-0.89 -1.55,-2.63 -0.66,-3.88 0.89,-1.26 2.62,-1.55 3.88,-0.66 1.33,0.94 2.59,2 3.74,3.16 1.09,1.09 1.09,2.85 0,3.94C82.5,53.54 81.79,53.82 81.08,53.82z"/>
/>
</vector>
画出的图形为:
显而易见重点是pathData里面的大串数字。
一些基本语法:
M:move to 移动绘制点,作用相当于把画笔落在哪一点。
L:line to 直线,就是一条直线,注意,只是直线,直线是没有宽度的,所以你什么也看不到。
Z:close 闭合,嗯,就是把图封闭起来。
C:cubic bezier 三次贝塞尔曲线
Q:quatratic bezier 二次贝塞尔曲线
A:ellipse 圆弧
每个命令都有大小写形式,大写代表后面的参数是绝对坐标,小写表示相对坐标,相对于上一个点的位置。参数之间用空格或逗号隔开。
命令详解:
M (x y) 移动到x,y
L (x y) 直线连到x,y,还有简化命令H(x) 水平连接、V(y)垂直连接
Z,没有参数,连接起点和终点
C(x1 y1 x2 y2 x y),控制点x1,y1 x2,y2,终点x,y
Q(x1 y1 x y),控制点x1,y1,终点x,y
A(rx ry x-axis-rotation large-arc-flag sweep-flag x y)
rx ry 椭圆半径
x-axis-rotation x轴旋转角度
large-arc-flag 为0时表示取小弧度,1时取大弧度
sweep-flag 0取逆时针方向,1取顺时针方向
Android vector Path Data画图详解的更多相关文章
- Android图片缓存之Bitmap详解
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓 ...
- Android 之窗口小部件详解--App Widget
Android 之窗口小部件详解--App Widget 版本号 说明 作者 日期 1.0 添加App Widge介绍和示例 Sky Wang 2013/06/27 1 App ...
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
- Android源码下载方法详解
转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...
- Android 之窗口小部件详解(三) 部分转载
原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
- Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送
Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...
随机推荐
- Charm Bracelet(01背包)
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fil ...
- 线性回归Linear regression
线性回归算法 解决回归问题 思想简单,容易实现 是许多强大的非线性模型的基础 结果具有很好的可解释性 蕴含机器学习中的很多重要思想 基本思想:寻找一条直线,最大程度的“拟合”样本特征和样本输出标记之间 ...
- FZU2102Solve equation
Problem 2102 Solve equation Accept: 881 Submit: 2065 Time Limit: 1000 mSec Memory Limit : 3276 ...
- SpringMVC(8) - 处理器映射
在以前的Spring版本中,用户需要在Web应用程序上下文中定义一个或多个HandlerMapping bean,以将传入的Web请求映射到适当的处理器.通过引入带注解的控制器,就不需要像之前那样定义 ...
- 洛谷P1771 方程的解_NOI导刊2010提高(01)
题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...
- 重写jQuery serialize方法,使文本框在没有输入的情况下,使用其支持默认值
未压缩版 jQuery.fn.extend({ serialize:function() { return jQuery.param(this.serializeArray()); }, serial ...
- 【2018 Multi-University Training Contest 2】
01: 02: 03: 04:https://www.cnblogs.com/myx12345/p/9394511.html 05: 06: 07:https://www.cnblogs.com/my ...
- msp430项目编程30
msp430中项目---电压检测系统 1.SVS工作原理 2.电路工作原理 3.代码(显示部分) 4.代码(功能实现) 5.项目总结
- poj3635 FULL tank(TLE) 有限制的最短路(BFS搜索)。
用的BFS+优先队列+二进制压缩状态判重+链式前向星, TLE,好像有人这样过了...好像要用A*算法,还不太会,所以暂时放弃.但是也学会了很多,学习了链式前向星,更深理解了BFS求最优的时候,什么时 ...
- IE下IFrame引用跨域站点页面时,Session失效问题解决
问题场景:在一个应用(集团门户)的某个page中, 通过IFrame的方式嵌入另一个应用(集团实时监管系统)的某个页面. 当两个应用的domain 不一样时, 在被嵌入的页面中Session失效.(s ...