在编写软件中,我们未免会遇到各种各样的Activity切换,在各种Activity切换过程里,我们为了保持界面的一致性,通常会定义一样的动画,但是在动画定义的过程中有一些问题需要注意。
如,结束返回一个Activity的动画如何实现、使用手机自带返回键后的动画变成了默认的切换动画。
本例中使用的是淡进淡出的动画模式。
1、切换进一个Activity的淡入动画代码如下:
Intent mintent=new Intent(MainActivity.this,Fragment_GameMenuActivity.class);
startActivity(mintent);
overridePendingTransition(R.animator.fragment_in,R.animator.fragment_out);
2、结束后也要加上这段程序,才能保持淡出一致性
finish();
overridePendingTransition(R.animator.fragment_in,R.animator.fragment_out);
3、有时候手机自带的返回键按下就会以一种默认动画返回,所以也要重写这段返回键按下的代码。
@Override
public void onBackPressed() {
finish();
overridePendingTransition(R.animator.fragment_in,R.animator.fragment_out);
super.onBackPressed();
}
1> 这里还有另一种写法,但两个写法不能同时使用
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK){
finish();
overridePendingTransition(R.animator.fragment_in,R.animator.fragment_out);
}
else {
}
return super.onKeyDown(keyCode, event);
}
·4、动画转变的XML代码
1、淡入
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000">
</set>
2、淡出
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000">
</set>