Android中矢量动画

Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线。

<path> 标签 支持一下属性
M = (Mx, y) 移动到x,y,并不会划线
L (Lx, y) 直线连到x,y,还有简化命令H(x) 水平连接、V(y)垂直连接
Z,没有参数,连接起点和终点
C=(Cx1, y1, x2, y2, x, y),控制点x1,y1 x2,y2,终点x,y
Q=(Qx1, y1, x, y),控制点x1,y1,终点x,y
A(Arx, ry, rotation, flag1, flag2, x, y) 弧线在(椭圆)
rx,ry 椭圆的半轴
rotation:值得是椭圆的X轴与水平方向顺时针的夹角
flag1: z只有两个值1 和0 1表示大脚弧线,0表示小角弧线
flag2:1和0 表示顺时针和逆时针
X,y 终点坐标

表示不是很理解

drawable下建xml文件

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="100.0"
android:viewportHeight="100.0">
<group android:name="test1"
android:rotation="0">
<path
android:strokeWidth="2"
android:strokeColor="#77ff33"
android:pathData="M25,25 L25,50 L50, 50,L50,25z"
/>
</group>
</vector>

其中的width,height,viewportWidth, viewportHeight 分别表示不同的含义,width和height表示的是矢量图的真实大小

viewportWidth和viewportheight表示的是矢量图的划分比例,后面path中的使用的参数就是根据这两个值进行转化的。
比如上面的code,就200 划分了100份,那么其中的L50,50 表示的就是整个矢量图的正中间,所以width,height和viewportWidth, viewportHeight的比列一定要保持一致,否则就会变形。

画出了矢量图,肯定少不了动画;

属性动画中有个ObjectAnimator用于实现动画效果,在这里同样适用

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360"/>

propertyName 用来填写属性

动画定义好了,矢量图也有了,那怎么样把他们整合到一块呢,我觉得应该也可以类似属性动画一样,将矢量图制定给ImageView,然后在给ImageView制定动画。
当然还有另外的方法更强大,利用animated-vector 把矢量图和动画整合到一起
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vector1">
<target
android:name="test1"
android:animation="@animator/obhectanimotr1"
/>
</animated-vector>

http://www.open-open.com/lib/view/open1467861100069.html 和 http://blog.csdn.net/xu_fu/article/details/44004841 这个博客很不错

在上面的博客的例子中会有用到propertyName 中trimPathStart,这个属性的意思是按照0到1的百分比绘制图形的路径,trimPathEnd同理

Android中矢量动画的更多相关文章

  1. Android中的动画

    Android中的动画分为: 1.逐帧动画(Frame Animation):  把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...

  2. Android中的动画具体解释系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...

  3. Android中的动画详解系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...

  4. 初识android中的动画

    动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对 ...

  5. Android中的动画机制

          1 逐帧动画   逐帧动画 就是一系列的图片按照一定的顺序展示的过程.   逐帧动画很简单, 只需要在drawable中或者anim中定义一个Animation-list 其中包含多个it ...

  6. Android中的动画效果

    动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...

  7. Android中的动画学习总结

    android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...

  8. Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现

    1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...

  9. Android中的动画,选择器,样式和主题的使用

    一.动画: 1.动画的分类: 1).Tween动画:这种实现方式可以使视图组件移动.放大.缩小以及产生透明度的变化: 2).Frame动画:传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影. ...

随机推荐

  1. Error invoking SqlProvider method (com.github.abel533.mapper.MapperProvider.dynamicSQL). Cause: java.lang.InstantiationException: com.github.abel533.mapper.MapperProvider

    org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: org.apache.i ...

  2. [No0000AE]在 Visual Studio 中调试 XAML 设计时异常

    在 Visual Studio 中进行 WPF, UWP, Silverlight 开发时,经常会遇到 XAML 设计器由于遭遇异常而无法正常显示设计器视图的情况.很多时候由于最终生成的项目在运行时并 ...

  3. Basic EEG waves 四种常见EEG波形

    Source: https://www.medicine.mcgill.ca/physio/vlab/biomed_signals/eeg_n.htm The electroencephalogram ...

  4. [LeetCode] Add and Search Word - Data structure design 添加和查找单词-数据结构设计

    Design a data structure that supports the following two operations: void addWord(word) bool search(w ...

  5. linux的常用文件系统格式

    文件系统指文件存在的物理空间.在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构.Linux的最重要特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其它种操作系统共存.Vi ...

  6. Nginx配置Https

    1.申请证书: https://console.qcloud.com/ssl?utm_source=yingyongbao&utm_medium=ssl&utm_campaign=qc ...

  7. PowerBuilder笔记

    powerbuilder中怎样新建一个pbl文件 在创建pbw之后,右键单击pbw,点新建,弹出对话矿,按图操作,就能创建pbl 主程序入口: 主程序入口代码: // Profile ahzbmysq ...

  8. 解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了

    自己制作的Ghost盘上网有点问题,每次重启后电脑的ip地址被还原,要重新设置 百度后终于找解决办法,在此记录. 第一步:点击左下角的WIN图标,输入CMD然后回车,打开DOS模式窗口. 第二步:在D ...

  9. Redux原理(一):Store实现分析

    写在前面 写React也有段时间了,一直也是用Redux管理数据流,最近正好有时间分析下源码,一方面希望对Redux有一些理论上的认识:另一方面也学习下框架编程的思维方式. Redux如何管理stat ...

  10. VirtualBox内ubuntu10.10系统和windows7 共享文件夹

    材料 virtualbox 4.3.0 ubuntu10.10 window 7 sp1 步骤 1.安装好虚拟机和操作系统,(具体步骤网上有很多) 2.安装虚拟机的增强功能包, 安装完成手动系统重新, ...