ViewPropertyAnimator:
内置View中实现的动画操作类,可以通过animate()方法会判断初始化ViewPropertyAnimator并返回
ViewPropertyAnimator实例,是一种对view进行简单动画设置的一种方法
ObjectAnimator 示例:ObjectAnimator.ofFloat(flipImage, "rotationY", 0f, 360f); 可通过
addUpdateListener添加AnimationUpdateListener监听
动画运行过程中的常规回调getAnimatedFraction()方法会返回当前动画完成的百分比。还可以
通过 getAnimatedValue()得到当前动画中某个属性的准确值
LayoutTransition:
在 XML 中设置 android:animateLayoutChanges 标签或者在 Java 代码中添
加一个 LayoutTransition 对象即可实现任何ViewGroup 改变布局时的动画效果
代码中修改关注的五种状态:
● APPEARING:容器中出现一个视图
● DISAPPEARING:容器中消失一个视图
● CHANGING:布局改变导致某个视图随之改变,例如调整大小,但不包括添加或移除视图。
● CHANGE_APPEARING:其他视图的出现导致某个视图改变。
● CHANGE_DISAPPEARING:其他视图的消失导致某个视图改变
例:LayoutTransition transition =new LayoutTransition(); transition.setAnimator(LayoutTransition.APPEARING,animator);
PropertyValuesHolder:使用PropertyValuesHolder可以进行动画组合
示例:
PropertyValuesHolder pvhSlide = PropertyValuesHolder.ofFloat("y",0,1);
PropertyValuesHolder pvhScaleY = PropertyValuesHolder.ofFloat("scaleY",1f,0.5f,1f);
PropertyValuesHolder pvhScaleX = PropertyValuesHolder.ofFloat("scaleX",1f,0.5f,1f);
Animator changingAppearingAnim = ObjectAnimator.ofPropertyValuesHolder(this,pvhSlide,pvhScaleY,pvhScaleX);
Activity过渡动画
可以在 startActivity()或者 finish()后立刻调用 overridePendingTransition()方法
通过style item name="android:windowAnimationStyle"可以设置全局activity过渡动画
Fragment过渡动画
1,FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
//首先必须调用该方法
ft.setCustomAnimations(R.anim.activity_open_enter, R.anim.activity_open_exit,R.anim.activity_close_enter, R.anim.activity_close_exit);
ft.replace(R.id.container_fragment, fragment);
ft.addToBackStack(null);
ft.commit();
setCustomAnimations()必须在 add()、 replace()和其他动作方法之前调用
2,如果希望对某个 Fragment 一直使用同样的动画,可能需要覆写 Fragment 中的 onCreateAnimator()方法(API Level 11之前为onCreateAnimation())
FragmentTransaction ft = getFragmentManager().beginTransaction();
//设置过渡值来触发相应的动画
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.container_fragment, fragment);
ft.addToBackStack(null);
ft.commit();
通过style item name="android:windowAnimationStyle"可以设置全局fragment过渡动画
可以利用style item name="android:windowAnimationStyle"创建资源文件同事设置Fragment和Activity的过渡动画
style name="AppTheme" parent="android:Theme.Holo.Light"
name="android:windowAnimationStyle"
name="TransitionAnimation" parent="@android:style/Animation.Activity"
name="android:activityOpenEnterAnimation"
name="android:fragmentOpenEnterAnimation"