Android页面切换动画学习
知识详解http://www.htcplayer.com/thread-2852-1-1.html
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt1/index.html
页面切换是指从一个Activity跳转到另一个Activity
可以用overridePendingTransition这个函数来实现
overridePendingTransition函数有两个参数:第一个是activity退出时的动画,第二个是activity进入时的动画
使用时注意:
1.该函数只能在startActivity()或finish()之后调用。
2. 它只适用于android 2.0及以上版本
overridePendingTransition(R.anim.fade, R.anim.hold);//fade是退出时,hold是进入时
1. 淡入淡出效果
fade.xml
1 <alpha xmlns:android="http://schemas.android.com/apk/res/android" 2 android:duration="2000" 3 android:fromAlpha="0.0" 4 android:interpolator="@android:anim/accelerate_interpolator" 5 android:toAlpha="1.0" />
hold.xml
1 <translate xmlns:android="http://schemas.android.com/apk/res/android" 2 android:duration="2000" 3 android:fromXDelta="0" 4 android:interpolator="@android:anim/accelerate_interpolator" 5 android:toXDelta="0" />
2. 放大淡出效果
my_scale_action
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <scale 4 android:duration="2000" 5 android:fillAfter="false" 6 android:fromXScale="0.0" 7 android:fromYScale="0.0" 8 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 9 android:pivotX="50%" 10 android:pivotY="50%" 11 android:toXScale="1.4" 12 android:toYScale="1.4" /> 13 14 </set>
my_alpha_action
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <alpha 4 android:duration="2000" 5 android:fromAlpha="1.0" 6 android:toAlpha="0" /> 7 <!-- 8 透明度控制动画效果 alpha 9 浮点型值: 10 fromAlpha 属性为动画起始时透明度 11 toAlpha 属性为动画结束时透明度 12 说明: 13 0.0表示完全透明 14 1.0表示完全不透明 15 以上值取0.0-1.0之间的float数据类型的数字 16 17 长整型值: 18 duration 属性为动画持续时间 19 说明: 20 时间以毫秒为单位 21 --> 22 23 </set>
3. 转动淡出效果1
scale_rotate
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:shareInterpolator="false" > 3 4 <scale 5 android:duration="2000" 6 android:fromXScale="0.0" 7 android:fromYScale="0.0" 8 android:interpolator="@android:res/anim/accelerate_decelerate_interpolator" 9 android:pivotX="50%" 10 android:pivotY="50%" 11 android:repeatCount="0" 12 android:startOffset="20" 13 android:toXScale="1.0" 14 android:toYScale="1.0" > 15 </scale> 16 17 <rotate 18 android:duration="2000" 19 android:fromDegrees="0" 20 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 21 android:pivotX="50%" 22 android:pivotY="50%" 23 android:toDegrees="+355" /> 24 25 </set>
my_alpha_action
4. 转动淡出效果2
scale_translate_rotate
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:shareInterpolator="false" > 3 4 <scale 5 android:duration="2000" 6 android:fromXScale="0.0" 7 android:fromYScale="0.0" 8 android:interpolator="@android:res/anim/accelerate_decelerate_interpolator" 9 android:pivotX="50%" 10 android:pivotY="50%" 11 android:toXScale="1.0" 12 android:toYScale="1.0" > 13 </scale> 14 15 <translate 16 android:duration="2000" 17 android:fromXDelta="120" 18 android:fromYDelta="30" 19 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 20 android:toXDelta="30" 21 android:toYDelta="250" /> 22 23 <rotate 24 android:duration="2000" 25 android:fromDegrees="0" 26 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 27 android:pivotX="50%" 28 android:pivotY="50%" 29 android:toDegrees="+355" /> 30 31 </set>
my_alpha_action
5. 左上角展开淡出效果
scale_translate
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:shareInterpolator="false" > 3 4 <scale 5 android:duration="2000" 6 android:fromXScale="0.0" 7 android:fromYScale="0.0" 8 android:interpolator="@android:res/anim/accelerate_decelerate_interpolator" 9 android:pivotX="0" 10 android:pivotY="0" 11 android:repeatCount="0" 12 android:startOffset="0" 13 android:toXScale="1.0" 14 android:toYScale="1.0" > 15 </scale> 16 17 <translate 18 android:duration="2000" 19 android:fromXDelta="0" 20 android:fromYDelta="0" 21 android:toXDelta="0" 22 android:toYDelta="0" /> 23 24 </set>
my_alpha_action
6. 压缩变小淡出效果
hyperspace_in
1 <alpha xmlns:android="http://schemas.android.com/apk/res/android" 2 android:duration="2000" 3 android:fromAlpha="0.0" 4 android:startOffset="1200" 5 android:toAlpha="1.0" />
hyperspace_out
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:shareInterpolator="false" > 3 4 <scale 5 android:duration="2000" 6 android:fillAfter="false" 7 android:fromXScale="1.0" 8 android:fromYScale="1.0" 9 android:interpolator="@android:anim/accelerate_decelerate_interpolator" 10 android:pivotX="50%" 11 android:pivotY="50%" 12 android:toXScale="1.4" 13 android:toYScale="0.6" /> 14 15 <set 16 android:interpolator="@android:anim/accelerate_interpolator" 17 android:startOffset="700" > 18 <scale 19 android:duration="2000" 20 android:fromXScale="1.4" 21 android:fromYScale="0.6" 22 android:pivotX="50%" 23 android:pivotY="50%" 24 android:toXScale="0.0" 25 android:toYScale="0.0" /> 26 27 <rotate 28 android:duration="2000" 29 android:fromDegrees="0" 30 android:pivotX="50%" 31 android:pivotY="50%" 32 android:toDegrees="-45" 33 android:toYScale="0.0" /> 34 </set>
7. 右往左推出效果
push_left_in
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <translate 4 android:duration="2000" 5 android:fromXDelta="100%p" 6 android:toXDelta="0" /> 7 8 </set>
push_left_out
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <translate 4 android:duration="2000" 5 android:fromXDelta="0" 6 android:toXDelta="-100%p" /> 7 8 </set>
8. 下往上推出效果
push_up_in
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <translate 4 android:duration="2000" 5 android:fromYDelta="100%p" 6 android:toYDelta="0" /> 7 8 <alpha 9 android:duration="2000" 10 android:fromAlpha="0.0" 11 android:toAlpha="1.0" /> 12 13 </set>
push_up_out
1 <set xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <translate 4 android:duration="2000" 5 android:fromYDelta="0" 6 android:toYDelta="-100%p" /> 7 8 <alpha 9 android:duration="2000" 10 android:fromAlpha="1.0" 11 android:toAlpha="0.0" /> 12 13 </set>
9. 左右交错效果
slide_left
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/accelerate_interpolator" > 3 4 <translate 5 android:duration="2000" 6 android:fromXDelta="100%p" 7 android:toXDelta="0" /> 8 9 </set>
slide_right
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/accelerate_interpolator" > 3 4 <translate 5 android:duration="2000" 6 android:fromXDelta="-100%p" 7 android:toXDelta="0" /> 8 9 </set>
10. 放大淡出效果
wave_scale
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/accelerate_interpolator" > 3 4 <alpha 5 android:duration="2000" 6 android:fromAlpha="0.0" 7 android:toAlpha="1.0" /> 8 9 <scale 10 android:duration="2000" 11 android:fromXScale="0.5" 12 android:fromYScale="0.5" 13 android:pivotX="50%" 14 android:pivotY="50%" 15 android:toXScale="1.5" 16 android:toYScale="1.5" /> 17 <scale 18 android:duration="2000" 19 android:fromXScale="1.5" 20 android:fromYScale="1.5" 21 android:pivotX="50%" 22 android:pivotY="50%" 23 android:startOffset="200" 24 android:toXScale="1.0" 25 android:toYScale="1.0" /> 26 27 </set>
my_alpha_action
11.缩小效果
zoom_enter
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/decelerate_interpolator" > 3 4 <alpha 5 android:duration="2000" 6 android:fromAlpha="0" 7 android:toAlpha="1.0" /> 8 9 <scale 10 android:duration="2000" 11 android:fromXScale="2.0" 12 android:fromYScale="2.0" 13 android:pivotX="50%p" 14 android:pivotY="50%p" 15 android:toXScale="1.0" 16 android:toYScale="1.0" /> 17 18 </set>
zoom_exit
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/decelerate_interpolator" 3 android:zAdjustment="top" > 4 5 <scale 6 android:duration="2000" 7 android:fromXScale="1.0" 8 android:fromYScale="1.0" 9 android:pivotX="0" 10 android:pivotY="0" 11 android:toXScale="0" 12 android:toYScale="0" /> 13 14 <alpha 15 android:duration="2000" 16 android:fromAlpha="1.0" 17 android:toAlpha="0" /> 18 19 </set>
12. 上下交错效果
slide_up_in
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/decelerate_interpolator" > 3 4 <translate 5 android:duration="2000" 6 android:fromYDelta="100.0%p" 7 android:toYDelta="0.0" /> 8 9 </set>
slide_down_out
1 <set xmlns:android="http://schemas.android.com/apk/res/android" 2 android:interpolator="@android:anim/accelerate_interpolator" > 3 4 <translate 5 android:duration="2000" 6 android:fromYDelta="0.0" 7 android:toYDelta="100.0%p" /> 8 9 </set>