在Android中,兩個activiyt的切換總是自左向右抽動的效果
在Activity中提供了overridePendingTransition函數,用在startActivity(Intent)
orfinish之後,
overridePendingTransition有兩個參數,都是int類型的,意味著這裡要傳入一個資源,
在sdk中是這樣定義的、
- enterAnim A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation.
- exitAnim A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation.
一個是進入的動畫,一個是退出的動畫,如果連個值都設置成0,則表示不添加動畫
例如 在startActivity開啟一個intent之後,添加如下代碼
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
這樣在啟動下一個窗口的時候出現淡入淡出的效果
- //實現從左向右滑動效果
- overridePendingTransition(android.R.anim.slide_in_left,
- android.R.anim.slide_out_right);
另外,還可以通過在資源文件夾中anim中添加自定義的配置文件,來實現自定義過度動畫
例如在程序中添加這樣的 效果來實現和iphone一樣的效果
- overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
自定義的zoomin.xml文件,該文件設置了新的activity進入時的效果
- <?xml version="1.0" encoding="utf-8"?>
- <set
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/decelerate_interpolator">
- <scale
- android:fromXScale="2.0" android:toXScale="1.0"
- android:fromYScale="2.0" android:toYScale="1.0"
- android:pivotX="50%p" android:pivotY="50%p"
- android:duration="@android:integer/config_mediumAnimTime" />
- </set>
自定義的zoomout.xml文件,該文件設置了原來的activity退出是的效果
- <?xml version="1.0" encoding="utf-8"?>
- <set
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/decelerate_interpolator"
- android:zAdjustment="top">
- <scale
- android:fromXScale="2.0" android:toXScale="0.5"
- android:fromYScale="2.0" android:toYScale="0.5"
- android:pivotX="50%p" android:pivotY="50%p"
- android:duration="@android:integer/config_mediumAnimTime" />
- <alpha
- android:fromAlpha="1.0"
- android:toAlpha="0"
- android:duration="@android:integer/config_mediumAnimTime" />
- </set>