android矢量动画 充电,android矢量动画
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矢量动画相关推荐
- Android矢量图动画特效,Android使用SVG矢量图打造酷炫动画效果
一个真正Android使用SVG矢量图打造酷炫动效往往让人虎躯一震,话不多说,咱们先看看效果: 这个效果我们需要考虑以下几个问题: 1. 这是图片还是文字: 2. 如果是图片该如何拿到图形的边沿线坐标 ...
- Android矢量图动画特效,Android矢量动画实践
之前的文章里,有朋友评论说饿了么的动画是使用AnimatedVectorDrawable来实现的.这个东西虽然原来也知道,但是一直没有切实的使用过.刚好昨天有看到一个蛮帅的矢量动画(文末福利),有了兴 ...
- android 子module混淆_Android 矢量图详解
官方文档 关于 Vector,在官方开发指南中介绍.本文章是由个人翻译官方指南然后添加个人理解完成. 由于个人精力有限,多个渠道发布,排版上可能会有问题,如果影响查看,请移步 Android 开发者家 ...
- android 动画 返回,Android“菜单图标变返回”动画
此例用到SVG动画,其中涉及三个XML文件,分别为:Vector矢量图,objectAnimator动画,以及一个animated-vector文件将前两个文件联合起来. 1.在drawable文件夹 ...
- android刷新时的圆形动画_Android 实现倒计时动画效果
本文没有写作背景,在闲暇之余,想巩固下用到的知识,才有了这篇文章的产出.觉得内容太简单的神们,可以绕道了,不过如果是个神,还是个喷子,可以留下改进建议再走也不迟. 想要实现的效果图如下: 点击&quo ...
- android svg动画框架,Android实现炫酷SVG动画效果
svg是目前十分流行的图像文件格式了,svg严格来说应该是一种开放标准的矢量图形语言,使用svg格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互 ...
- Android自定义控件开发入门与实战(7)SVG动画,android底层架构
move to (50,23) line to(100,25) 而坐标并不是用width和height的坐标,而是viewportWidth和viewportHeight的坐标,(50,23)中50表 ...
- lottie动画android,lottie——让设计师来写动画
首先来思考一下如何实现下面的动画 Android的动画有很多种: Frame Animation(逐帧动画): 主要用于播放一帧帧准备好的图片,类似GIF图片. Tween Animation(补间动 ...
- android 动态生成直线,Android SVG技术入门:线条动画实现原理
SVG技术入门:线条动画实现原理 这是一个有点神奇的技术:一副线条构成的画能自动画出自己,非常的酷.SVG 意为可缩放矢量图形(Scalable Vector Graphics),是使用 XML 来描 ...
最新文章
- ReplaceQueryString
- h3c怎么创建虚拟服务器,h3c 设置虚拟服务器
- Windows Phone的网络连接策略
- 深入java虚拟机学习 -- 类的加载机制(续)
- php跨域同步登录,织梦PC端移动端会员同步登录跨域AJAX
- 改造消费方解决地址硬编码问题
- 网页版nfc_苹果5大系统升级新特性浓缩汇总!秋季5G版iPhone稳了
- 2019,微软研究项目盘点
- 近期找工作无果的一些感想
- 直接学python3_新手应该学python2还是python3?
- python文件路径的操作
- 时序图(Sequence Diagram)—UML图(六)
- 用100多行python代码开发java代码生成器
- STM32之UART、RS232、RS485通讯
- 深度学习——常用数据标注工具总结
- linux mysql skip_skip-grant-tables 修改linux的mysql忘记root密码
- 养生篇01 (饭水分离法)
- 第 13 章 一 垃圾回收概述
- GET http://localhost:8082/ net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
- H.265网页播放器EasyPlayer获取视频流正常,但是播放出现黑屏是什么原因?