1overridePendingTransition
Activity的切換動畫指的是從一個activity跳轉到另外一個activity時的動畫。
它包括兩個部分:
一部分是第一個activity退出時的動畫;
另外一部分時第二個activity進入時的動畫;
在Android的2.0版本之後,有了一個函數來幫我們實現這個動畫。這個函數就是overridePendingTransition
這個函數有兩個參數,一個參數是第一個activity進入時的動畫,另外一個參數則是第二個activity退出時的動畫。
這裏需要特別說明的是,關於overridePendingTransition這個函數,有兩點需要主意
1.它必需緊挨着startActivity()或者finish()函數之後調用"
2.它只在android2.0以及以上版本上適用
2 官方給我們提供的動畫效果
實現淡入淡出的效果
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
由左向右滑入的效果
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
3overridePendingTransition 不起作用原因
1、android系統版本2.0以下,這個沒辦法,想其他辦法解決切換動畫吧。
4 自定義動畫
原理介紹:點擊打開鏈接
步驟一:首先在res/anim 下 聲明兩個動畫效果
fade.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha 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="@android:integer/config_longAnimTime" />
hold.xml<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="0"
android:duration="@android:integer/config_longAnimTime" />
步驟二:在activity跳轉的時候加上overridePendingTransition方法 refresh=(TextView) this.findViewById(R.id.refresh);
refresh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent(PathButtonActivity.this,MainActivity.class);
startActivity(intent);
//第一個參數爲啓動時動畫效果,第二個參數爲退出時動畫效果
overridePendingTransition(R.anim.fade, R.anim.hold);
}
});