安卓发展了这么多年,实现动画的方式也变得多种多样。在你的APP中加入动效会使之增色不少,所以从现在开始学习实现动画的方式,以备将来不时之需,下面是我的一些汇总,以后新的方式,我会在这里加入。

android.view.animation

这是最早的一种,支持view的tween和frame动画。

android.animaton

又称属性动画(property animation),从3.0开始支持,要想兼容3.0以下,可以使用nineoldanimations或者android support包.你可以用它实现任何动画,简单了解下它的工作原理

如下是它的实现机制:

也可以通过Developer Android了解更详细的介绍。

属性动画提供了基础框架,在具体的使用场景,有时候还是需要自己做些封装,下面是我汇总的一些github上开源的框架。

比如:在绘制心跳图时很方便。它的实现原理很简单,就是确定时间轴和点(手机上的坐标)的关系,然后把每个点都绘制出来。

有时候我们需要把几个动画串起来播放,这个框架就提供了几种串起来的排序方式。

3.像这样的框架还有挺多的,需要的话可以上github上找。以上两个只是我个人比较喜欢的两款。

android.transition

又称转场动画,从5.0开始加入。下面这张图可以帮助我们了解其原理

5.0以下可以使用 support包 实现。

5.0以下也可以使用 Transitions-Everywhere,相比support包,开源者给了更多的实现方式。

NOTE:不管是android.support.transition还是TransitionsEverywhere,或者其他的都不支持Fragment和Activity的转场动画

这是facebook开源的一款实现动画的框架了,实现了弹簧动力学,使动画看起来更像是在真实世界中发生的。

// Create a system to run the physics loop for a set of springs.

SpringSystem springSystem = SpringSystem.create();

// Add a spring to the system.

Spring spring = springSystem.createSpring();

// Add a listener to observe the motion of the spring.

spring.addListener(new SimpleSpringListener() {

@Override

public void onSpringUpdate(Spring spring) {

// You can observe the updates in the spring

// state by asking its current value in onSpringUpdate.

float value = (float) spring.getCurrentValue();

float scale = 1f - (value * 0.5f);

myView.setScaleX(scale);

myView.setScaleY(scale);

}

});

// Set the spring in motion; moving from 0 to 1

spring.setEndValue(1);

简单的几行代码就实现了,在自定义实现时,需要想象力去还原真实的世界会是怎么发生的。

Backboard是建议在rebound基础上实现的,它会让我们更容易把rebound和控件,动作结合起来开发,它标榜的也是motion-driven.

SpringAnimation

这是SpringAnimation(弹簧动画),发布在 Support Library 25.3.0 里面

使用文件作为动画。

1.gif文件

android的drawable不支持,需要使用第三方框架支持

2.vector

从4.4开始加入,如果需要在低版本使用,需要使用support包。其实vector一开始来源于htm的svg,后面api也可以加入,可以使用工具把svg转化成vector,比如你可以使用 svg2android进行转换。

其实lottie-android是把 adobe的AfterEffects搬到安卓上实现。不过你需要用 bodymovin把AfterEffects转换成json.

要把上面的这些全部掌握,还是需要一些时间。从现在开始学习吧!

android 动画方式,Android动画实现方式的汇总相关推荐

  1. android旋转动画的两种实现方式

    在android开发,我们会常常使用到旋转动画,普通情况下旋转动画有两种实现方式,一种是直接通过java代码去实现,第二种是通过配置文件实现动画.以下是两种动画的基本是用法: 纯Java代码实现: / ...

  2. android svg指纹录取动画_你知道几种前端动画的实现方式?

    随着互联网的持续发展,H5 页面作为与用户直接交互的表现层越来越复杂,呈现的形式也越来越丰富,从而也要求 H5 页面具有更多的花样性及动画效果.那前端实现动画效果的方式有哪些呢,大致有如下几种: 一. ...

  3. android 动画方式,Android Activity进出动画三种方法

    Android Activity进出动画三种方法 实现activity的进出场动画总共有3种方式,下面会一一列出,首先给出示例的动画xml文件. 动画的xml文件 android:fromYDelta ...

  4. android 播放gif动画效果,android 通过帧动画方式播放Gif动画

    注意:经过本人测试,这个方法很耗内存, 图片一多就崩了.慎用 <1>用工具(photoshop或者FireWorks)将GIF动画图片分解成多个GIF静态图片,然后保存在res\drawa ...

  5. android动画影子效果,Android实现阴影效果的三种方式

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 实现Android阴影共有三种方式:使用.9图(略).设置视图的高度.在layer-list资源文件中模拟阴影效果,本篇 ...

  6. android 说话水波动画,Android实用View——水波动画效果多种实现方式详解

    原标题:Android实用View--水波动画效果多种实现方式详解 这次给大家带来的是一篇关于自定义View实现水波动画效果的文章,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期的 ...

  7. 【Android 基础】Animation 动画介绍和实现

    转载自:http://www.cnblogs.com/yc-755909659/p/4290114.html 1.Animation 动画类型 Android的animation由四种类型组成: XM ...

  8. Android 动画之View动画效果和Activity切换动画效果

    View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...

  9. 每日一道面试题(第7期)---Android补间动画与属性动画的区别

    零零碎碎的东西总是记不长久,仅仅学习别人的文章也只是他人咀嚼后留下的残渣.无意中发现了这个每日一道面试题,想了想如果只是简单地去思考,那么不仅会收效甚微,甚至难一点的题目自己可能都懒得去想,坚持不下来 ...

  10. Android开发之三种动画

    转载:http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html http://www.lightskystreet.com/2 ...

最新文章

  1. dynamo怎样由线生成体_语音生成效果评价不再逐句进行:谷歌提出长文本语音生成评价新系统...
  2. pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail
  3. shell中的 trap
  4. HTML荧光文字动态效果,html – 在CSS中的笔荧光笔效果
  5. php网页中不能上传图片,为什么我的PHP图片上传代码可以实现插入数据库但图片不能插入文件夹中?...
  6. List常用方法总结
  7. 【爬虫】获取新郑机场出租车实时数据
  8. linux C语言基础学习总结
  9. Windows虚拟设备驱动开发总结
  10. 玩转 ESP32 + Arduino (十九) SIM800L调试(基于TTGO T-CALL)
  11. APP抓包工具——Fiddler
  12. bzoj3375[Usaco2004 Mar]Paranoid Cows 发疯的奶牛*
  13. python去除字符串中的单词_从字符串中删除特定单词的最有效方法
  14. 【2019.05】JS逆向——破解百度翻译参数(sign)爬虫 超级详细
  15. 计算机无法检测更新失败怎么办,Windows更新错误解决方案
  16. html 图片摆动效果,CSS摆动/摇动效果
  17. 用什么办法可以解决失眠?
  18. RDD论文翻译:基于内存的集群计算容错抽象
  19. oracle密码锁了,Oracle 修改密码 解锁
  20. 大商创是用哪种php柜架写的,大商创商家入驻入口去除说明简述

热门文章

  1. MySQL建库建表语句
  2. 设置Windows系统双网卡同时上内外网
  3. 双网卡电脑同时访问内外网设置静态路由表
  4. vrep外部控制器力矩控制实例——以matlab脚本控制平面两连杆为例
  5. 使用Navicat导入备份的数据库文件操作流程
  6. 刚毕业的大学夫妻,我含泪看完(转帖)
  7. xshell如何设置选中复制_Xshell
  8. 最新MT2503平台技术资料集锦
  9. 三角波的傅里叶变换对_傅里叶变换(二) 从傅里叶级数到傅里叶变换
  10. 运行Puttygen.exe生成密钥