Android动画的简要分析与总结

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

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

View动画

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

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

Android动画的简要分析与总结_第1张图片

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

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

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

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


帧动画

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


Android动画的简要分析与总结_第2张图片

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

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

View动画的特殊使用场景

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

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

先在anim中定义xnl:

Android动画的简要分析与总结_第3张图片

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

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

Android动画的简要分析与总结_第4张图片

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

Activity动画切换效果

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

它包括两个部分:

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

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

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

使用也非常简单:

Android动画的简要分析与总结_第5张图片

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

属性动画

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

你可能感兴趣的:(Android动画的简要分析与总结)