切换界面效果:set
界面的切换需要两个样式文件,即当前页面切出与下一页面切回,切换效果一共有四种:
第一种:translate
<!--水平/竖直切-->
<translate
android:duration="2000"//切换持续时间(AS可能无提示)
android:fromXDelta="0"//从x轴来
android:fromYDelta="0"//从y轴来
android:toXDelta="-2560"//到x轴去
android:toYDelta="-1600" />//到y轴去
第二种:alpha
<!--透明度切换-->
<alpha
android:duration="2000"//切换持续时间
android:fromAlpha="1.0"//从此透明度切出
android:toAlpha="0.0" />//到此透明度切入
第三种:scale
<!--缩放切换-->
<scale
android:duration="2000"//切换持续时间
android:fromXScale="1.0"//从此x轴缩放比例
android:fromYScale="1.0"//从此y轴缩放比例
android:toXScale="0.0"//到此x轴缩放比例
android:toYScale="0.0"//到此y轴缩放比例
android:pivotX="50%"//x轴缩放起点(Activity左上角)
android:pivotY="50%" />//y轴缩放起点(Activity左上角)
?第四种:rotate
<!--旋转切换-->
<rotate
android:duration="2000"//切换持续时间
android:fromDegrees="0"//从此角度切出
android:toDegrees="-90"//到此角度切入
android:pivotX="0%"//x轴缩放起点(Activity左上角)
android:pivotY="0%"/>//y轴缩放起点(Activity左上角)
注:坐标轴以右为X轴,以下为Y轴,负为逆时针,正为顺时针,坐标原点为手机左上角,宽高为手机屏幕宽高
使用:
//切换界面
startActivity(new Intent(MainActivity.this, Main2Activity.class));
//使用样式文件(res新建anim文件夹,start作用于Main2Activity,end作用于MainActivity)
overridePendingTransition(R.anim.activity_start,R.anim.activity_end);
切换样式完整版
R.anim.activity_start
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="2000"
android:fromXDelta="2560"
android:fromYDelta="1600"
android:toXDelta="0"
android:toYDelta="0" />
<alpha
android:duration="2000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
<scale
android:duration="2000"
android:fromXScale="0.5"
android:fromYScale="0.5"
android:pivotX="20%"
android:pivotY="20%"
android:toXScale="1.0"
android:toYScale="1.0" />
<rotate
android:duration="2000"
android:fromDegrees="90"
android:pivotX="0%"
android:pivotY="0%"
android:toDegrees="0" />
</set>
R.anim.activity_end
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-2560"
android:toYDelta="-1600" />
<alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
<scale
android:duration="2000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.0"
android:toYScale="0.0" />
<rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="0%"
android:pivotY="0%"
android:toDegrees="-90" />
</set>
注:
-
overridePendingTransition必需紧挨着startActivity()或者finish()函数之后调用 -
overridePendingTransition android2.0以及以上版本才支持 -
如果不需要切换动画可以设置overridePendingTransition(0,0) -
overridePendingTransition只能在主线程中调用 -
进入和退出动画的时间设置要一样,不然会有黑屏效果
|