Duang Duang Duang -- 给视图加特效(动画)

  • 内容
  • 评论
  • 相关

前言

想要让自己的app能Duang的一下变得绚丽点,动画效果是必不可少的,还是老样子,前辈们已经总结出来的精髓就不再重复介绍了,直接贴出来自harvic880925的博客(传送门),这几篇博客主要系统的介绍了视图动画和属性动画的用法,包括自定义插值器(Interpolator)以及Evaluator等高级操作。本篇博客是以前辈的博客为基础的,介绍的是给ViewGroup动态增加控件时的动画。

Duang Duang Duang对比图

默认(没有动画效果)

default

默认动画效果

DuangDuangDuang1

自定义动画效果

DuangDuangDuang2

具体实现

要实现这种效果,需要使用的是LayoutTransition,如果想要给ViewGroup实现默认的动画效果是很简单的,有两种实现方法,可以在布局文件中使用下面的属性

android:animateLayoutChanges="true"

或者在代码中给对应的ViewGroup使用setLayoutTransition(LayoutTransition )设置。如下,如果不设置动画,采用默认实现,效果和第一种方法一样。

// 实例化LayoutTransition属性

mLayoutTransition = new LayoutTransition();

mGridLayout.setLayoutTransition(mLayoutTransition);

如果我们想使用使用自定义的动画效果,可以直接给LayoutTransition使用LayoutTransition.setAnimator(int transitionType, Animator animator)设置动画,其中第一个参数transitionType的取值可以为以下四种。

  • LayoutTransition.APPEARING  添加的控件的出现时动画
  • LayoutTransition.CHANGE_APPEARING  当添加一个控件时,其他控件的动画
  • LayoutTransition.DISAPPEARING 删除一个控件时的动画
  • LayoutTransition.CHANGE_DISAPPEARING  当删除一个控件时,其他控件的动画

详细代码

布局文件是一个按钮以及一个GridLayout按照线性布局排列。

Activity代码片,关键是createCustomAnimations()方法,在这个方法中,我分别为上面说的四种情况设置了动画。

上面所写的四种情况中,有两种情况非常特殊,就是LayoutTransition.CHANGE_APPEARING 以及 LayoutTransition.CHANGE_DISAPPEARING动画设置方法,必须和上面设置的方法一样,不然不会显示出预期的效果。

LayoutTransition.CHANGE_APPEARING得使用如下方法。

LayoutTransition.CHANGE_DISAPPEARING得使用如下方法。

题外话

在我们的Android模拟器中,往往存在着一个ApiDemos的App,这个App里面分类别演示了很多功能,源码在SDK的安装目录下\sdk\samples\任意一个版本的SDK下,通过这些官方提供的文档,我们可以很清楚的知道具体的实现过程。

Demo下载 : 360云盘  访问密码 3b8f

评论

0条评论

发表评论

邮箱地址不会被公开。