android矢量动画!

直接来个例子就明白了!(这里我把与动画无关的属性都用…表示)

首先你要有个矢量图

比如这个矢量图xml文件叫”vector1”,文件在res\drawable文件夹中

.....

>

android:rotation="0"

android:scaleX="1"

android:scaleY="1"

android:translateX="0"

android:translateY="0">

android:name="path1" //这个name是用来为属性动画 标识控制的具体目标的

android:fillAlpha="1"

android:fillColor="@color/red"

android:strokeAlpha="1"

android:strokeWidth="5"

android:strokeColor="@color/green"

android:trimPathEnd="0.1"

android:trimPathStart="0.5"

android:pathData="M0,0 L50,0 L100,100 L0,100 z" />

group>

vector>

这上面的除了name属性,其他的都可以用属性动画来控制!

既然有了这些可以作为动画的属性,那么我们就来个属性动画吧!

比如这个动画文件叫”objectAnimator1”,注意如果使用的android studio这个文件需要在res\animator文件夹中创建

"http://schemas.android.com/apk/res/android"

android:duration="1000" //持续时间,单位毫秒

android:repeatMode="reverse"

android:repeatCount="infinite"

android:interpolator="@android:anim/accelerate_interpolator" //插值器,系统已经提供了很多,或者自己写个也行

android:propertyName="xxxx" //这里只要是上面代码有的属性都可以填写,但注意valueType属性就需要根据而改变了

android:valueFrom=xxxx" //变化开始的初始值

android:valueTo="xxxx" //变化结束时的值

android:valueType="colorType|floatType|intType|pathType"/> //注意如果propertyName选择了"pathData",则valueType必须选择pathType

// 有了apple和pen那么就有applePen了!(大雾)

有了矢量图,有了动画,那么组合起来就有矢量动画了!

举个例子:

这个文件放在res\drawable文件夹中,比如名字就叫做”av1”

android:drawable="@drawable/vector1"> //这个drawable是初始的时候显示的内容

android:name="group1" //这个name必须要和矢量图中的name属性一样,不然作用不到指定的目标上

android:animation="@animator/objectAnimator1" />

android:name="path1"

android:animation="@animator/objectAnimator2"/>

注意!!!!

1. 如果name指定了group,则objectAnimator中propertyName指定的属性必须是group的属性,不能是path的属性!

2. 如果name指定的是path,则objectAnimator中propertyName指定的属性必须是path的属性,不能是group的属性!

最后再把这个带有动画效果的drawable设置到ImageView中去

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/av1"/>

但是怎么触发动画呢????

@BindView(R.id.iv_at_1)

ImageView iv_at_1;

Drawable d = iv_at_1.getDrawable(); //直接从ImageView中获取drawable

if (d instanceof Animatable) { //如果这个drawable是可以Animatable的实现类

((Animatable) d).start(); //调用start()就开始播放动画了!!

}

还有很多其他的用法,看大家的思维有多开拓了

注意!!!!

- 如果propertyName选择了pathData, 则android:valueFrom=xxxx” android:valueTo=”xxxx” 中需要填入的就是pathData的值

例如:

android:propertyName="pathData"

android:valueType="pathType"

android:valueFrom="M50,0 L50,0 L100,100 L0,100 z"

android:valueTo = "M0,0 L100,0 L50,100 L50,100 z"

其中需要特别注意的是, valueFrom和valueTo中的每个操作符都要一一对应,而且数量一样,不然会抛异常!!!

在使用第三方SVG生成器生成的SVG图片的时候不要复制过来就用了,还要检查下里面的操作符,不然呵呵,有你受的

没有图片不幸福

看看效果:

android矢量动画 充电,android矢量动画相关推荐

  1. Android矢量图动画特效,Android使用SVG矢量图打造酷炫动画效果

    一个真正Android使用SVG矢量图打造酷炫动效往往让人虎躯一震,话不多说,咱们先看看效果: 这个效果我们需要考虑以下几个问题: 1. 这是图片还是文字: 2. 如果是图片该如何拿到图形的边沿线坐标 ...

  2. Android矢量图动画特效,Android矢量动画实践

    之前的文章里,有朋友评论说饿了么的动画是使用AnimatedVectorDrawable来实现的.这个东西虽然原来也知道,但是一直没有切实的使用过.刚好昨天有看到一个蛮帅的矢量动画(文末福利),有了兴 ...

  3. android 子module混淆_Android 矢量图详解

    官方文档 关于 Vector,在官方开发指南中介绍.本文章是由个人翻译官方指南然后添加个人理解完成. 由于个人精力有限,多个渠道发布,排版上可能会有问题,如果影响查看,请移步 Android 开发者家 ...

  4. android 动画 返回,Android“菜单图标变返回”动画

    此例用到SVG动画,其中涉及三个XML文件,分别为:Vector矢量图,objectAnimator动画,以及一个animated-vector文件将前两个文件联合起来. 1.在drawable文件夹 ...

  5. android刷新时的圆形动画_Android 实现倒计时动画效果

    本文没有写作背景,在闲暇之余,想巩固下用到的知识,才有了这篇文章的产出.觉得内容太简单的神们,可以绕道了,不过如果是个神,还是个喷子,可以留下改进建议再走也不迟. 想要实现的效果图如下: 点击&quo ...

  6. android svg动画框架,Android实现炫酷SVG动画效果

    svg是目前十分流行的图像文件格式了,svg严格来说应该是一种开放标准的矢量图形语言,使用svg格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互 ...

  7. Android自定义控件开发入门与实战(7)SVG动画,android底层架构

    move to (50,23) line to(100,25) 而坐标并不是用width和height的坐标,而是viewportWidth和viewportHeight的坐标,(50,23)中50表 ...

  8. lottie动画android,lottie——让设计师来写动画

    首先来思考一下如何实现下面的动画 Android的动画有很多种: Frame Animation(逐帧动画): 主要用于播放一帧帧准备好的图片,类似GIF图片. Tween Animation(补间动 ...

  9. android 动态生成直线,Android SVG技术入门:线条动画实现原理

    SVG技术入门:线条动画实现原理 这是一个有点神奇的技术:一副线条构成的画能自动画出自己,非常的酷.SVG 意为可缩放矢量图形(Scalable Vector Graphics),是使用 XML 来描 ...

最新文章

  1. ReplaceQueryString
  2. h3c怎么创建虚拟服务器,h3c 设置虚拟服务器
  3. Windows Phone的网络连接策略
  4. 深入java虚拟机学习 -- 类的加载机制(续)
  5. php跨域同步登录,织梦PC端移动端会员同步登录跨域AJAX
  6. 改造消费方解决地址硬编码问题
  7. 网页版nfc_苹果5大系统升级新特性浓缩汇总!秋季5G版iPhone稳了
  8. 2019,微软研究项目盘点
  9. 近期找工作无果的一些感想
  10. 直接学python3_新手应该学python2还是python3?
  11. python文件路径的操作
  12. 时序图(Sequence Diagram)—UML图(六)
  13. 用100多行python代码开发java代码生成器
  14. STM32之UART、RS232、RS485通讯
  15. 深度学习——常用数据标注工具总结
  16. linux mysql skip_skip-grant-tables 修改linux的mysql忘记root密码
  17. 养生篇01 (饭水分离法)
  18. 第 13 章 一 垃圾回收概述
  19. GET http://localhost:8082/ net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
  20. H.265网页播放器EasyPlayer获取视频流正常,但是播放出现黑屏是什么原因?

热门文章

  1. swift UI专项训练5 定制视图控制器
  2. 捕捉mysql中不可忽视的知识点(二)
  3. 邮件回复功能失效 谁遇到过?
  4. V神建议使用BCH区块链用于以太坊“数据层”
  5. 对ETC上线Coinbase反应的众生相
  6. Angular实现虚拟滚动多选下拉框笔记
  7. Apache 配置关闭文件目录浏览
  8. MySQL 5.6.26 Release Note解读
  9. ELK结合logback搭建日志中心
  10. quartz表达式在线生成器