对于ViewGroups对象布局变化的动画
属性动画系统给ViewGroup对象的动画变化提供了与View对象一样容易动画处理方法。
使用LayoutTransition类在ViewGroup内部处理布局变化的动画。当调用一个View对象的setVisibility()方法,或者设置该View的GONE常量,或者把该View对象添加到ViewGroup中(或者从ViewGroup中删除)时,在ViewGroup内部的View对象就能够实现时隐时现的动画效果。当在ViewGroup对象中添加或删除View对象时,其中的其他View对象也能够动画移动到新的位置。在LayoutTransition对象内通过调用setAnimator()方法,并且在传递给该方法的Animator对象参数中带有下列LayoutTransition常量之一,就能够定义该常量所代表的动画:
1.APPEARING---一个标记,它指示要在容器中正在显示的项目上运行动画;
2.CHANGE APPEARING---一个标记,它指示在容器中由于新项目的出现而导致其他项目变化所要运行的动画;
3.DISAPPEARING---一个标记,它指示一个从容器中消失的项目所要运行的动画;
4.CHANGE_DISAPPEARING---一个标记,它指示由于一个项目要从容器中消失而导致其他项目的变化,所要运行的动画。
能够给这四种事件类型定义自定义动画,以便定制自己的布局过渡效果,也可以告诉动画系统只使用默认的动画效果。
在APIDemo中的LayoutAnimations示例,显示了如何给布局的过渡定义动画效果,并且在想要动画效果的View对象上设置动画。
LayoutAnimationsByDefault类以及它对应的layout_animations_by_default.xml布局资源文件显示了如何在XML中启用ViewGroup对象的默认布局过渡效果。需要做的事情仅仅是把ViewGroup元素的android.animateLayoutchanges属性设置为true。例如:
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/verticalContainer"
android:animateLayoutChanges="true" />
如果把这个属性设置为true,那么在该ViewGroup对象中添加或删除View对象,以及ViewGroup对象中其他的View对象都会自动的具有动画效果。
使用TypeEvaluator
如果想要的动画类型是Android系统所未知的,那么通过实现TypeEvaluator接口就能够创建自己的评价器。Android系统已知的类型是int、float或颜色(color),分别有IntEvaluator、FloatEvaluator和ArgbEvaluator类型的评价器所支持。
在TypeEvaluator接口中只有一个要实现的方法:evaluate()方法。这个方法允许正在使用的动画处理器返回一个适用于于当前动画时点动画属性值,FloatEvaluator类演示了这个方法是如何做这件事的:
public class FloatEvaluator implements TypeEvaluator {
public Object evaluate(float fraction, Object startValue, Object endValue) {
float startFloat = ((Number) startValue).floatValue();
return startFloat + fraction * (((Number) endValue).floatValue() - startFloat);
}
}
注意:当ValueAnimator对象(或ObjectAnimator对象)运行时,它会计算当前的动画播放比例(一个0到1之间的值),然后根据你所使用的插值类型来计算一个要插入的动画的版本。插值比例是由TypeEvaluator对象通过fraction参数接收来的,因此在计算动画值的时候,不需要考虑插值。
分享到:
相关推荐
Android Animation Detailed Tutorial / Android 动画详尽教程 ... Property Animation / 属性动画 English explanation can go to read this article Ⅳ. Ripple Effect / Touch Feedback /
代码为博客示例代码:http://blog.csdn.net/lmj623565791/article/details/38067475 有问题请博客留言
比较全的android动画例子,包括基础的tween animation,这个就不必说了,还有比较新的属性动画:property animation
Android学习之 属性动画Property Animation
Android 动画 Animation Demo
博客示例代码:http://blog.csdn.net/xiaohao0724/article/details/54863112
代码为博客实例代码:http://blog.csdn.net/lmj623565791/article/details/38067475 有问题博客留言
android中属性动画,暂停,播放停止功能的实现
android-animation-collections ShakeAnimation 仿IOS卸载的晃动动画&文本标签编辑的晃动动画 PropertyAnimation 属性动画、补间动画测试
Android动画之Animation的使用。包括变换动画Tween Animation,帧动画Frame Animation,布局动画Layout Animation,属性动画Property Animation
android属性动画的 运用demo
博客实例代码:http://blog.csdn.net/xiaohao0724/article/details/54863112
Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有...
很全的Android动画的Demo TweenAnimation DrawableAnimation PropertyAnimation都有很详细的实现
android的属性动画示例 详细介绍了 objectanimator animationset等的使用
* Property Animation :属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的...
android的基本动画分为四种:Tween Animation 变换动画、Frame Animation 帧动画、Layout Animation 布局动画、Property Animation 属性动画。
Android SDK:创建简单的属性动画 我在这里添加代码是读者使用/贡献代码的另一种方式。 该教程是在一段时间之前编写的,因此其中的技术可能已经过时了-但我将以编写时的源代码开始此仓库,以便阅读该教程的任何人...