Android 5.0学习之AnimatedVectorDrawable(转载)
来源:互联网 发布:新网络三剑客 编辑:程序博客网 时间:2024/05/29 04:38
转载自:http://blog.csdn.net/ljx19900116/article/details/41806875
前言
示例代码地址:animated-vector-drawable
几句代码,几个配置文件即可实现以上效果,流畅的体验,无缝的动画,赞~!
官方文档:点击传送
VectorDrawable
在Android 5.0(API级别21)或以上的系统中,则可以定义矢量drawables,它可以在不失清晰度的情况下进行缩放。你仅仅需要需要一个矢量图片的资源文件,而需要为每个屏幕密度设置一个资源文件。要创建一个矢量图片,你需要定义形状元素的细节在<vector>XML文件中。
建议大家下载以上例子,我根据这个例子进行讲解。
我们先看看笑脸的vector文件:
矢量图像在Android中被表示为VectorDrawable对象。首先看到这个pathData肯定会很疑惑,更多有关pathData语法的信息,请参阅SVG Path 的文档参考。学好了PathData的语法,什么都能绘制的出来~!我在github上面就看到一哥们画了一个地雷有图有真相哦。看上去虽然很复杂,但是越复杂的东西,却往往是越灵活的东西
好了,我相信大家通过代码和文档已经简单的解了vector标签。接下来我们来看看如何给它添加动画吧。
AnimatedVectorDrawable
AnimatedVectorDrawable类可以去创建一个矢量资源的动画。
你通常在三个XML文件中定义矢量资源的动画载体:
<vector>元素的矢量资源,在res/drawable/(文件夹)
<animated-vector>元素的矢量资源动画,在res/drawable/(文件夹)
< objectAnimator>元素的一个或多个对象动画器,在res/anim/(文件夹)
矢量资源动画能创建<group>和<path>元素属性的动画。<group>元素定义了一组路径或子组,并且<path>元素定义了要被绘制的路径。
当你想要创建动画时去定义矢量资源,使用Android:name属性分配一个唯一的名字给组和路径,这样你可以从你的动画定义中查询到它们。
接下来我就以旋转的小三角为例:
看之前我们要思考一个问题,它是如何做到在边旋转的过程中变化形状的。
首先我们先看一下小三角的vector文件:
然后在看一下animated-vector文件:
旋转动画:
变化形状动画:
最后我们再来看下它是如何配置到layout里面的:
配置了一个avb也就是上面贴的animated-vector文件。
最后看一下Activity的启动动画代码:
找到这个view 拿到他们Drawables对象start即可,容易吧,赶紧去试试吧~!
0 0
- Android 5.0学习之AnimatedVectorDrawable(转载)
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- Android 5.0学习之AnimatedVectorDrawable
- ym—— Android 5.0学习之AnimatedVectorDrawable
- Android SVG使用之AnimatedVectorDrawable
- 【Android graphics】(一) Android SVG使用之AnimatedVectorDrawable
- 【Android graphics】(一) Android SVG使用之AnimatedVectorDrawable
- 【Android graphics】(一) Android SVG使用之AnimatedVectorDrawable
- Android的VectorDrawable与AnimatedVectorDrawable
- Android -- VectorDrawable、AnimatedVectorDrawable 使用详解
- Android基础总结十:AnimatedVectorDrawable
- Android学习之路【转载】
- Android 矢量图(VectorDrawable)及动画(AnimatedVectorDrawable)
- 通过金矿模型介绍动态规划 (动态规划入门)
- Java上传下载完全解析(二)
- (2) SpringMVC拦截器案例和讲解
- 【Android 开发入门】Android设备监视器之调试工具DDMS使用初探
- [FineReport]数据钻取-超级链接参数传递
- Android 5.0学习之AnimatedVectorDrawable(转载)
- This is very likely to create a memory leak 异常
- 感情若走远
- (3) filter和interceptor的区别
- 2016/12/16开启我的第一篇博客
- 2017 年你应该学习的编程语言、框架和工具
- 放下的忧伤还要再将它捡起来吗?
- MySql中文查询乱码,问号问题
- dalvik执行流程