Android动画的简要分析与总结

今天又温习了一边Android中各种属性动画的使用以及原理,发现自己遗漏了很多的知识点,那今天就来总结一下。

Android中的动画可以分为三类:View动画,帧动画,和属性动画。先总View动画开始总结。

View动画

View动画作用的对象是View,它支持四种动画效果,分别是平移动画、缩放动画、旋转动画以及透明度动画。

View动画的四种变换效果对应Animation的四个子类,分别是:TranslateAnimation(平移动画)、ScaleAnimation(缩放动画)、RotateAnimation(旋转动画)、AlphaAnimation(透明度动画)。

每个标签中的属性,我就不贴了,基本上见名知意,然后在java中引入xml:

这就成功的引入了XML中的动画。

除了在SML中定义动画外,还可以通过代码来应用动画,这里举个例子:

这里仅仅有透明的动画效果,其他三种效果就不做介绍了,基本相同。


帧动画

帧动画是顺序播放一组预先定义好的图片,类似于电影播放,不同于View动画,系统提供了另外一个类AnimationDrawable来使用帧动画。帧动画比较简单,首先需要通过XML定义一个AnimationDrawable,如图所示:


然后将上述的DrawableXML作为View的背景并通过Drawable来播放动画即可:

帧动画使用比较简单,但是比较容易引起OOM,所以使用时尽量避免使用过大尺寸的图片。

View动画的特殊使用场景

很多开发者可能不知道,View动画还可以使用在特殊的场景下,比如在ViewGroup控制子元素的出场效果,其实我们在很多APP中经常看到。还可以在Activity之间实现切换的效果。

LayoutAnimation作用于ViewGroup,为ViewGroup指定一个动画,这样当它的子元素加载时,都会具有这样的效果。听起来是不是很炫酷呢,下面我们来实现它。

先在anim中定义xnl:

下面一一介绍layoutAnimation标签中的属性,delay,见名知意,延迟多长时间执行。animation,加载动画效果,animationOrder指明播放顺序,及顺序,逆向,随机。

定义好动画之后,我们在ListView上使用此动画。

至此,运行之后,我们就能看到动画效果了。

Activity动画切换效果

Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。

它包括两个部分:

一部分是第一个activity退出时的动画;

另外一部分时第二个activity进入时的动画;

在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是overridePendingTransition

使用也非常简单:

有一点需要注意,overridePendingTransition一定要在startActivity或者finish()之后,否则是没有效果的。

属性动画

这里我就不写了,请参考Android属性动画

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,647评论 25 708
  • 概述 在Android开发的过程中,View的变化是很常见的,如果View变化的过程没有动画来过渡而是瞬间完成,会...
    小芸论阅读 39,061评论 18 134
  • 无力感,总是一个人觉得很无助 什么时候才能主宰自己的命运
    米妮宝贝走了阅读 302评论 0 0
  • 累,就对了,舒服就给死人。坚持,加油
    小阳子阅读 178评论 0 1
  • 今天你可能真的走了,可能还是没走。 早上打电话给你,没接。 还好今天回了我三条消息,七个字。 晚上打你电话还是没接...
    阿素你是我的小太阳阅读 151评论 0 0