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详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...
随机推荐
- Action中result的各种转发类型
Action中result的各种转发类型 1,dispatcher:默认值 ,内部定向 <result>/WEB-INF/page/employeeAdd.jsp</result&g ...
- Android TransitionDrawable:过渡动画Drawable
Android TransitionDrawable实现一种可以用动画表示的Drawable.写一个例子. package zhangphil.app; import android.graphics ...
- D 题
题目大意:找朋友,最好把朋友最多的一堆的人数输出 运用并查集,每次更新最大数即可: 代码: #include <iostream> #include <cstdio> #inc ...
- CSU1350 To Add which?
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1350 这题目因为每一个数都跟相邻的数有关,所以可以从左到右和从右到左一次扫一遍即可 代 ...
- POJ 2420 A Star not a Tree?【爬山法】
题目大意:在二维平面上找出一个点,使它到所有给定点的距离和最小,距离定义为欧氏距离,求这个最小的距离和是多少(结果需要四舍五入)? 思路:如果不能加点,问所有点距离和的最小值那就是经典的MST,如果只 ...
- 常见的 Android 新手误区
在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台.它不仅是一个廉价的工具,而且有着良好的 开发社区,以及从所周知的编程语言(Java),使得开发 ...
- 库操作&表操作
系统数据库 ps:系统数据库: mysql 授权库,主要存储系统用户的 权限信息 test MySQL数据库系统自动创建的 测试数据库 ination_schema 虚拟库,不占用磁盘空间,存储的是数 ...
- ATcoder 2000 Leftmost Ball
Problem Statement Snuke loves colorful balls. He has a total of N×K balls, K in each of his favorite ...
- java基础语法4--封装,继承,多态
学习路线: 未封装==>封装==>继承==>多态==>抽象类 首先还是那句话,万物皆对象,对象有行为和属性. 一:封装 1.封装的概念: 信息隐蔽和对象的属性及操作结合成一个独 ...
- 重载OverLoad。隐藏new
<1> using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...