Android L New API之Verctor动画 1 —— SVG Path

导入

1、VectorDrawable是Android L中新增的一个API,让你可以创建基于XML的矢量图,并结合AnimatedVectorDrawable来实现动画效果。

2、Android L新增支持Vector标签,可以使用Path创建动画,同时支持SVG格式。

SVG 简介

1、SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
2、SVG 用来定义用于网络的基于矢量的图形
3、SVG 使用 XML 格式定义图形
4、SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
5、SVG 是万维网联盟的标准
6、SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

结合Android,本次讲解SVG中的path标签

<Path>

1、使用path标签时,就像用指令的方式来控制一只画笔,例如:移动画笔到某一坐标位置,画一条线,画一条曲线,结束

2、path 的属性

d="path data" 路径上点的坐标
pathLength="<number>" 路径总长度 

3、D属性

路径标签中有一个非常重要的属性'D'。 'D'属性是一个字符串,它描述了要创建的路径位置和形状。 'D'属性包含多个连续的指令, 如Move(移动),画线,画曲线,并画圆弧和曲线等等。 每个指令都是一个字母,后面跟着参数。

<Path>指令

1、支持的指令:

M = moveto(M X,Y) :将画笔移动到指定的坐标位置
L = lineto(L X,Y) :画直线到指定的坐标位置
H = horizontal lineto(H X):画水平线到指定的X坐标位置
V = vertical lineto(V Y):画垂直线到指定的Y坐标位置
C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线
S = smooth curveto(S X2,Y2,ENDX,ENDY)
Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线
T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射
A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):弧线
Z = closepath():关闭路径

2、使用原则:

①坐标轴为以(0,0)为中心,X轴水平向右,Y轴水平向下。
②所有指令大小写均可。大写绝对定位,参照全局坐标系;小写相对定位,参照父容器坐标系
③指令和数据间的空格可以省略
④同一指令出现多次可以只用一个

注意,'M'处理时,只是移动了画笔, 没有画任何东西。 它也可以在后面给出上同时绘制不连续线。

3、详细指令分析

3.1、L H V指令

绘制直线的指令是“L”,从当前点划线到给定点。 “L”之后的参数是一个点坐标,如“L 200 400”。 如果画水平线或垂直线,可以使用“H”和“V”指令,后面的参数是x(H指令)或y坐标(V指令)。

M 起点X,起点Y L(直线)终点X,终点Y H(水平线)终点X V(垂直线)终点Y

如:M 10,20 L 80,50 M 10,20 V 50 M 10,20 H 90

3.2、A指令

允许不闭合。可以想像成是椭圆的某一段,共七个参数:

A RX,RY,XROTATION,FLAG1,FLAG2,X,Y

RX,RY指所在椭圆的半轴大小
XROTATION指椭圆的X轴与水平方向顺时针方向夹角,可以想像成一个水平的椭圆绕中心点顺时针旋转XROTATION的角度。
FLAG1只有两个值,1表示大角度弧线,0为小角度弧线。
FLAG2只有两个值,确定从起点至终点的方向,1为顺时针,0为逆时针
X,Y为终点坐标

如:m 200,250 a 150,30 0 1 0 0,70

SVG编辑器

SVG参数写法固定,因此完全可以使用程序来实现,而且写法复杂,所以,一般通过SVG编辑器来编辑

网上有很多,这里提供一个 http://editor.method.ac/

编辑后可直接生成code。

关于SVG的介绍就到这里,下面会讲解如何在Android中使用SVG,并创建path动画效果。

以上。

时间: 2024-10-24 15:54:02

Android L New API之Verctor动画 1 —— SVG Path的相关文章

开发者须知:关于 Android L 的一切

Google在I/O 2014大会上发布了全新移动操作系统Android L的开发者预览版本,相对于上一版本来说,Android L在UI风格.界面切换.和原生应用等各方面都发生了比较大的变化,目前该版本已提供给开发者进行下载安装.科技媒体ReadWrite日前发文对开发者 需要了解知晓的关于Android L的信息进行了整理,以下是文章的主要内容. 开发者必备:关于Android L的一切 Google在今年的I/O大会上一改曾经的传统,由发布新版Android改为发布Android L的开发

谷歌正式推出Android L 命名Lollipop

[TechWeb报道]谷歌的Android 5.0版本之前在开发者大会上被称之为Android L,不过这个L究竟是什么名词一直没有明确的说法,考虑到一贯的命名方式一定是甜品的名称.就在早些时候,谷歌正式召开发布会,发布了Nexus 6和Nexus 9在内的多款智能设备,同时正式推出了Android Lollipop操作系统,没错!这个L就是Lollipop的缩写.Android的每一个新版本都被命名为一种甜点并按字母顺序排列曾经的版本包括Apple pie(苹果派),Banana Bread(

get unning asks-getRunningTasks接口在Android L上的使用

问题描述 getRunningTasks接口在Android L上的使用 3C 最近在做的一个小项目中,需要实时获取Activity栈顶以及它所属的App Process.根据之前的了解,知道Android API有提供一个接口 public List getRunningTasks (int maxNum) 可以得到系统当前正在运行的Task列表,用maxNum限制要获取的数量(最近使用的最先取出). 实际运行程序时,发现并不能实时获取当前的Activity栈顶.(使用的是Android L的

Android L 可以为 Nexus 5 省电 36%

Android L 其中一个关键的特性就是 'Project Volta' ,旨在大幅提升 Android 设备的省电能力.那么问题是到底能省多少电呢? 根据 Ars Technica 的测试,答应是确定的.他们在 Nexus 5 上运行 Android L Developer Preview 和 最新版本的 KitKat, 4.4.4 ,运行了 471 分钟.如果不使用 Android L 运行 345 分钟.提升了 36% 的电池续航能力.测试的过程中让手机每隔 15 秒钟通过 WIFI 刷

很难说MIUI是更像iOS了还是更像Android L了

摘要: 很难说MIUI是更像iOS了还是更像Android L了. 今天下午,小米在北京798艺术区召开发布会,发布旗下最新的基于Android的移动操作系统MIUI 6.MIUI 6将支持小米手机2之后的全部小米机型. 8月 很难说MIUI是更像iOS了还是更像Android L了. 今天下午,小米在北京798艺术区召开发布会,发布旗下最新的基于Android的移动操作系统MIUI 6.MIUI 6将支持小米手机2之后的全部小米机型. 8月16日是小米的生日,在过去几年里,这一天通常用于发布小

Android实现左右摆动的球体动画效果_Android

首先,看一下效果   可能各位在别处看到过类似的东西,我在微信的文章末尾看到有个玩意,感觉有意思,就用代码实现一下.这篇文章主要把握写代码的思路展示一下. 看到上图,我想各位能想到最简单的实现方案就是用动画,切很多图出来,然后就可以轻松实现了.为了不让自己再舒适区里呆的太安逸,就弄点麻烦的:通过计算来实现.文章的末尾会将全部代码贴出,复制可以直接运行. 需要回忆的知识 重力势能 E = mgh 动能 E = ½mv² 在理想状态下,动能和重力式能可以相互转换,且能量守恒 如果不想太注意细节,以上

Android L 开发者预览版现已登陆 Nexus 5 和 7

现在,手中有Nexus 5或Nexus 7的开发者可以安装谷歌最新操作系统Android L的预览版了. Android L在Android 4.4 KitKat的基础上做了诸多改进,引入了全新的设计语言Material Design,这种语言全面提升了整个操作系统中的控制手段.通知和动画的外观和体验.另外,它还采用新的安装功能"个人登录",让用户设备通过周围环境信号(如Wi-Fi网络)来确定不需要密码进行解锁是否安全. 同苹果在WWDC大会上推出的iOS 8测试版一样,这只是一个将在

刷 Android L 系统 Nexus 7 上手体验,扁平化小清新

class="post_content" itemprop="articleBody"> 谷歌在6月26日凌晨正式发布了新安卓系统版本 Android L,使用了全新的 Material Design 设计语言,界面变得更加扁平化,提供了功能更加丰富.更加便捷的通知中心,Android L 的新 UI 相比以往版本色彩更加丰富,下方的三个功能键样式也有所改变,大量运用了下拉层叠元素-- 我们对2013款 Nexus 7 进行升级,一起来看看 Android L

api-开发是使用位置服务(android自带API),无法上传实时坐标,只能上传第一个点的坐标?

问题描述 开发是使用位置服务(android自带API),无法上传实时坐标,只能上传第一个点的坐标? 开发是使用位置服务(android自带API),无法上传实时坐标,只能上传第一个点的坐标?有大神知道这是为什么吗?急急急!!! 解决方案 http://blog.csdn.net/qiannuo/article/details/6791873