Android中矢量动画
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中矢量动画的更多相关文章
- Android中的动画
Android中的动画分为: 1.逐帧动画(Frame Animation): 把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...
- Android中的动画具体解释系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...
- Android中的动画详解系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...
- 初识android中的动画
动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对 ...
- Android中的动画机制
1 逐帧动画 逐帧动画 就是一系列的图片按照一定的顺序展示的过程. 逐帧动画很简单, 只需要在drawable中或者anim中定义一个Animation-list 其中包含多个it ...
- Android中的动画效果
动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...
- Android中的动画学习总结
android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...
- Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- Android中的动画,选择器,样式和主题的使用
一.动画: 1.动画的分类: 1).Tween动画:这种实现方式可以使视图组件移动.放大.缩小以及产生透明度的变化: 2).Frame动画:传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影. ...
随机推荐
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
怪异模式和严格模式(译注:一般称为标准模式:Standards Mode,下文中的严格模式都可以理解为标准模式)是浏览器解析CSS时的两种‘模式’.这篇文章将简单阐述这两种模式之间的差异. 译注:一个 ...
- [LeetCode] Convert a Number to Hexadecimal 数字转为十六进制
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...
- [LeetCode] Plus One Linked List 链表加一运算
Given a non-negative number represented as a singly linked list of digits, plus one to the number. T ...
- 单例模式中用volatile和synchronized来满足双重检查锁机制
背景:我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的. 例子1 ...
- 【原创】Chrome最新版(53-55)再次爆出BUG!
前言 今年十月份,我曾发布一篇文章<Chrome53 最新版惊现无厘头卡死 BUG!>,不过那个BUG在最新的 Chrome 54 中已经修正. 而今天即将发布的Chrome弱智BUG: ...
- Android 提醒公共方法 Notification
SimpAndroidFarme是近期脑子突然发热想做的android快速开发的框架,目标是模块化 常用的控件,方便新手学习和使用.也欢迎老鸟来一起充实项目:项目地址 今天的目标是做一个公共的提醒方法 ...
- iOS学习-圆形进度条
效果: #import <UIKit/UIKit.h> @interface HsProfitRatePieWidgets : UIView { UILabel *_textLabel; ...
- Sql 2008 的常用函数
1.LEN 函数:返回数据的长度 ') 返回:8 2.ASCII函数:返回字符串最左边的ascii值 SELECT ASCII('abc') 返回:97 3.LEFT函数:从左边开始截取指定长度的字符 ...
- HTML组成与语法
http://blog.csdn.net/niushitang/article/details/8230014 <HTML> <HEAD> <TITLE& ...
- JS数组经典冒泡排序
将8,4,3,1,4,6,等数字按照从小到大的顺序依次输出: var arr=new Array(); arr.push(8); arr.push(4); arr.push(3); arr.push( ...