Android常用动画调研

视图动画(View Animation)

视图动画:也叫Tween(补间)动画可以在一个视图容器内执行一系列简单变换(位置、大小、旋转、透明度)。譬如,如果你有一个TextView对象,您可以移动、旋转、缩放、透明度设置其文本,当然,如果它有一个背景图像,背景图像会随着文本变化。补间动画通过XML或Android代码定义,建议使用XML文件定义,因为它更具可读性、可重用性。

作用对象:作用于视图对象View,如TextView,不可作用于属性,如点击响应位置等。

核心类:透明度动画(AlphaAnimation)、缩放动画(ScaleAnimation)、平移动画(TranslateAnimation)、旋转动画(RotateAnimation)。

常用使用场景:1、比如应用于ViewGroup的子元素,常用的ViewGroup,比如ListView的每个子元素出现时多有一个特定的动画;2、应用于Activity的切换,Activity切换过程中,系统有默认的动画,但是很普通,如果我们想自己定义,可以使用 overridePendingTransition(int enterAnim, int exitAnim)来指定动画。3、应用于Fragment的切换Fragmnet同样也可以添加动画切换,这个应该相对比较少用到。它是通过FragmentTransaction的setCustomAnimations(int enter, int exit)方法来指定动画的。等

主要效果:

详细使用步骤:https://blog.csdn.net/pzm1993/article/details/77167049

帧动画(Frame 动画、Drawable 动画)

帧动画:将动画拆分为 帧 的形式,且定义每一帧 = 每一张图片,逐帧动画的本质是按序播放一组预先定义好的图片,使用简单、方便但是易引起 OOM,因为会使用大量 & 尺寸较大的图片资源,使用时一定要避免使用尺寸较大的图片。

作用对象:视图控件(View),如Android的TextView、Button等等,不可作用于View组件的属性,如:颜色、背景、长度等等。

核心类:AnimationDrawable类,void start() - 开始播放动画;void stop() - 停止播放动画;addFrame(Drawable frame, int duration) - 添加一帧,并设置该帧显示的持续时间;void setOneShoe(boolean flag) - false为循环播放,true为仅播放一次;boolean isRunning() - 是否正在播放。

常用使用场景:较为复杂的个性化动画效果,比如自定义loading加载框等

主要效果:

详细使用步骤:https://www.jianshu.com/p/225fe1feba60

属性动画(Propety Animation)

属性动画:属性动画是Android 3.0 (API level 11)才加入的,通过控制属性来实现动画,最为强大的动画,弥补了补间动画的缺点,实现位置+视觉的变化。并且可以定义时长、时间插值、重复次数、动画集Animator sets、帧频率等属性实现各种效果。

作用对象:任意java对象,甚至没对象都可以,通过改变对象的属性。

核心类:ValueAnimator(在一个特定的时间里执行一个动画), TimeAnimator(时序监听回调工具), ObjectAnimator(一个对象的一个属性动画), AnimatorSet (动画集合) ,TypeEvaluator(类型估值(估值器接口),设置属性值计算方式,根据属性的 始 & 末值 和 插值 一起计算出当前时间的属性值), AnimatorInflater(加载属性动画的XML文件)等。

工作原理:

常用使用场景:1、弥补了之前补间动画的一些缺陷,几乎是可以完全替代掉补间动画;2、在自定义 View 时,需要实现一些复杂的动画效果,或对 View 的一些特殊属性值进行动画变更时,视图动画无法实现时;3、属性动画你也可以用在非动画场景,比如,你在自定义 View 需要一个有一定规律(根据特定差值器变化)且可监听的数值变化器,这个时候借助属性动画是再合适不过了。等

主要效果:

能够实现多种动画效果。

详细使用步骤:https://blog.csdn.net/guolin_blog/article/details/43536355

触摸反馈动画(Ripple Effect)

触摸反馈动画:Android5.0以上,所谓触摸反馈动画就是一种点击效果,作用在可点击的 View 上时,当有点击事件时会有涟漪般的反馈效果。

作用对象:可点击的view上。

核心类:RippleView等。

常用使用场景:水波纹按钮或者可点击视图等。

主要效果:

详细使用步骤:https://blog.csdn.net/w690333243/article/details/73368867

揭露动画(Reveal Effect)

揭露动画:Android5.0以上,揭露动画在系统中很常见,就是类似波纹的效果, 从某一个点向四周展开或者从四周向某一点聚合起来。

作用对象:view上。

核心类:ViewAnimationUtil。

常用使用场景:可以用在 Activity 里面的 View 动画效果, 也可以使用在 Activity 跳转过渡动画中,如下图使用在 View 的显示隐藏的效果图。

主要效果:

详细使用步骤:https://blog.csdn.net/ss1168805219/article/details/55319108

转场动画 & 共享元素(Activity 切换动画)

揭露动画:谷歌Android5.0以上开始集成了更多更全面更易于开发者定义的的转场动画和共享元素动画。

常用使用场景:1、转场效果我们一般用在 Activity 切换时的动画效果上;2、共享元素一般我们使用在转换的前后两个页面有共同元素时,同时也可以在 Activity 布局发生场景变化时,让其中的 View 产生相应的过渡动画。

主要效果:

详细使用步骤:https://blog.csdn.net/wangwangli6/article/details/70210932

视图状态动画(Animate View State Changes)

视图状态动画:Android5.0以上,所谓视图状态动画,就是 View 在状态改变时执行的动画效果,当 View 的状态改变时,希望此时显示的效果和静态效果有所区分,即显示效果也做出相应的改变,比如 Z 轴抬高,大小改变、或其他动画效果等;和之前我们通过 selector 选择器给 Button 设置不同状态下的背景效果是一样一样的。

作用对象:view上。

核心类:StateListAnimator(是个动画, 在 res/anim (或者 res/animator)中),AnimatedStateListDrawable ( 是个 Drawable, 在 res/drawable 中) 。

常用使用场景:个按钮被点击后设置的视图状态动画,比如点赞,收藏等。

主要效果:

详细使用步骤:https://www.jianshu.com/p/d1fdfe546595

矢量图动画(Vector 动画)

矢量图动画:VectorDrawable 一般是以 <vector> 为根标签定义的 XML 文件,<vector>、<group>、<clip-path>、<path> 元素都有各自可以播放动画的属性。静态 Vector 支持 Android2.1+ ,动态 Vector 支持 Android3.0+ (属性动画 Android3.0+ (api>=11)) ,动态部分不兼容AndroidL(5.0)以下 (path Morphing)。

VectorDrawable是为了让Android支持SVG(点击可查看SVG动画)而诞生的。

核心类:StateListAnimator(是个动画, 在 res/anim (或者 res/animator)中),AnimatedStateListDrawable ( 是个 Drawable, 在 res/drawable 中) 。

常用使用场景:1、具有动态变换效果的图标;2、也可以用在需要特定动画效果的 VectorDrawable 图片上等。

主要效果:

详细使用步骤:https://www.jianshu.com/p/e71978a6cffa

约束布局实现的关键帧动画(ConstraintSet 动画)

约束布局实现的关键帧动画: API 19以上,所谓关键帧动画,就是给需要动画效果的属性,准备一组与时间相关的值,这些值都是在动画序列中比较关键的帧中提取出来的,而其他时间帧中的值,可以用这些关键值,采用特定的插值方法计算得到,从而达到比较流畅的动画效果。注:ConstraintLayout只支持约束布局的动画,不支持其他属性(如坐标修改,文字修改等)。

核心类:ConstraintSet ,TransitionManager 。

常用使用场景:1、布局嵌套过多的问题;2、布局可视化支持不够友好的问题等。

详细使用步骤:https://www.jianshu.com/p/c585180af02b

自定义view实现动画

仿小米视频加载动画:

https://blog.csdn.net/u013094278/article/details/75450534

贝塞尔曲线,比如仿直播或者饿了么购物车动画:

https://blog.csdn.net/ytwe520/article/details/78476719

切换主题,仿酷安客户端动画:

https://blog.csdn.net/u011387817/article/details/79604418

音录音播放动画

https://www.cnblogs.com/ldq2016/p/6692322.html

仿ins、微博头像加载动画:

https://www.jianshu.com/p/a0e2dbeef88a

Android所有动画分类总结相关推荐

  1. Android动画分类

    Android的动画本来有俩种:1.补间动画tween Animation:2.帧动画FrameAnimation 但是Android3.0之后又加入了属性动画 Property Animation ...

  2. Android开源项目分类汇总-转载

    太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...

  3. Android开源项目分类汇总[转]

    Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork Android优秀开源项目实现原理解析 欢迎加入 QQ 交流群:383537512(入群理由需要填写 ...

  4. Android属性动画 Interpolator

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118683683 本文出自[赵彦军的博客] 文章目录 Interpolator Ti ...

  5. Android Animation动画(很详细)

    Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...

  6. android 揭示动画_遗传编程揭示具有相互作用的多元线性回归

    android 揭示动画 We all had some sort of experience with linear regression. It's one of the most used re ...

  7. android 属性动画还原,属性动画和补间动画

    动画的分类 今天我们将会探讨动画的学习,Android的动画分成三类 1. Tween Animation(补间动画.视图动画):通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生的动画效果,即 ...

  8. 2016年GitHub上史上最全的Android开源项目分类汇总

    以下内容为转载 版主原网址 http://itindex.net/detail/51896-github-android-开源 GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时 ...

  9. Android 开源项目分类汇总(下)

    Android 开源项目分类汇总(下) 九.ScrollView Discrollview 支持滚动时 Item 淡入淡出,平移,缩放效果的 ScrollView 项目地址:https://githu ...

最新文章

  1. ASP.NET 初级开发成员面试题部分面试题
  2. 如何用php向wsdl服务器发请求,知道服务器端Wsdl,不写服务端代码,仅写客户端代码能调用服务端的方法吗?...
  3. 中切片工具怎么使用_PS软件中钢笔工具的使用,附视频
  4. redius mysql_采用Linux系统的Freeradius+MySQL实现RADIUS认证服务器
  5. 常用 命令类,慢慢收集
  6. 织梦CMS内核宝宝算命取名企业模板
  7. CVPR 2021 分布对齐,长尾分布问题解决新思路
  8. eclipse中使用Lombok(转)
  9. 英雄启动出错解决方法_超纯水设备高压泵不启动解决方法
  10. javascript获取对象高度和宽度(整理)
  11. javaweb php异步处理,Spring-MVC异步请求之Servlet异步处理
  12. 关于XP系统远程桌面的一点点记录
  13. 极路由 安装php,极路由B70刷固件详细步骤说明
  14. 阿铭Linux_网站维护学习笔记20190227
  15. 产品经理实践【四川省地震需求分析】
  16. CIP4和JDF,您知道多少?(转)
  17. 纪念我的小宝贝——浪浪
  18. 超级详细的CentOS8.2搭建个人网站(WordPress)
  19. 浙江更新了小学3年级到9年级信息技术课,小学开始学编程
  20. POI读取Excel转为HTML文件

热门文章

  1. 2020年焊工(技师)考试技巧及焊工(技师)复审模拟考试
  2. windows下基于wvp-GB28181-pro+ZLMediaKit实现的GB28181媒体流服务+实现ssl证书配置实现https访问
  3. dotnet调用MeasureStudio
  4. markdown甘特图的绘制
  5. 闲鹿工作流 activiti6.0 显示已结束的流程图
  6. 自动驾驶:自动驾驶车需要哪些核心技术?
  7. 基于佳点集的改进麻雀搜索算法
  8. 【无标题】东城搬家公司大件家具如何搬家
  9. H3C无线接入器WA4320-ACN-SI之FIT转FAT(瘦版本转胖版本)
  10. 《全息离我们有多远》