Android物业动画研究(Property Animation)彻底解决具体解释



Android物业动画研究(Property Animation)全然解析具体解释上已经基本展示了属性动画的核心使用方法:

ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~

当然了属性动画另一部分的知识点,也能做出非常不错的效果,将在本篇博客为您展示~

1、怎样使用xml文件来创建属性动画

大家肯定都清楚,View Animator 、Drawable Animator都能够在anim目录下创建动画,然后在程序中使用,甚至在Theme中设置为属性值。当然了。属性动画事实上也能够在文件里声明:

首先在res下建立animator目录。然后建立res/animator/scalex.xml

代码:

使用AnimatorInflater载入动画的资源文件,然后设置目标,就ok~~是不是非常easy,这仅仅是单纯横向的放大一倍~

假设我希望纵向与横向同一时候缩放呢?则能够怎么定义属性文件:

使用set标签,有一个orderring属性设置为together,【还有还有一个值:sequentially(表示一个接一个运行)】。

上篇博客中忽略了一个效果。就是缩放、反转等都有中心点或者轴,默认中心缩放,和中间对称线为反转线。所以我决定这个横向,纵向缩小以左上角为中心点:

代码:

非常easy。直接给View设置pivotX和pivotY,然后调用一下invalidate,就ok了。

以下看效果图:

好了,通过写xml声明动画,使用set嵌套set。结合orderring属性,也基本能够实现不论什么动画~~上面也演示了pivot的设置。

2、布局动画(Layout Animations)

主要使用LayoutTransition为布局的容器设置动画。当容器中的视图层次发生变化时存在过渡的动画效果。

基本代码为:

 

过渡的类型一共同拥有四种:

LayoutTransition.APPEARING 当一个View在ViewGroup中出现时。对此View设置的动画

LayoutTransition.CHANGE_APPEARING 当一个View在ViewGroup中出现时。对此View对其它View位置造成影响。对其它View设置的动画

LayoutTransition.DISAPPEARING  当一个View在ViewGroup中消失时,对此View设置的动画

LayoutTransition.CHANGE_DISAPPEARING 当一个View在ViewGroup中消失时,对此View对其它View位置造成影响,对其它View设置的动画

LayoutTransition.CHANGE 不是因为View出现或消失造成对其它View位置造成影响,然后对其它View设置的动画。

注意动画究竟设置在谁身上,此View还是其它View。

好了以下看一个综合的样例:

布局文件:

代码:

效果图:

动画有点长,耐心点看,一定要注意,是对当前View还是其它Views设置的动画。

当然了动画支持自己定义,还支持设置时间,比方我们改动下,加入的动画为:

则效果为:

原本的淡入,变成了宽度从中间放大的效果~~是不是还不错~~

3、View的anim方法

在SDK11的时候。给View加入了animate方法,更加方便的实现动画效果。

布局文件:

代码:

简单的使用mBlueBall.animate().alpha(0).y(mScreenHeight / 2).setDuration(1000).start()就能实现动画~~只是须要SDK11,此后在SDK12,SDK16又分别加入了withStartAction和withEndAction用于在动画前。和动画后运行一些操作。当然也能够.setListener(listener)等操作。

使用ObjectAnimator实现上面的变化,我们能够使用:PropertyValueHolder

效果与上面一样。

执行结果:

好了,关于属性动画基本全部的使用方法到此结束~~~~欢迎大家一起学习,一起进步。

源代码下载:zhy_property_animation

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的:(animation)