二动画相关

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"

你可能感兴趣的:(二动画相关)