您好,登錄后才能下訂單哦!
Android Activity進出動畫三種方法
實現activity的進出場動畫總共有3種方式,下面會一一列出,首先給出示例的動畫xml文件。
動畫的xml文件
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="100%" android:toYDelta="0" android:duration="1000" />
這是R.anim.in
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0" android:toYDelta="100%" android:duration="1000" />
這是R.anim.out
實現activity進出場動畫的第1種方式:overridePendingTransition
用法:
toNext(AnimationDrawableActivity.class); overridePendingTransition(R.anim.in, R.anim.out);
PS:toNext是一個封裝的方法,跳轉到指定的activity。
如果要finish掉當前activity,把它放在overridePendingTransition()方法前后似乎并無差別,不過有人建議finish()放在overridePendingTransition()之前,不知出處。
實現activity進出場動畫的第2種方式:在清單文件中為activity設置theme
在styles.xml文件中寫一個style,如下:
<style name="animationofactivity" parent="AppBaseTheme"> <item name="android:windowAnimationStyle">@style/enterandentrance</item> </style>
其中,主要是為android:windowAnimationStyle設置值,enterandentrance也是一個style,如下:
<style name="enterandentrance"> <item name="android:activityOpenEnterAnimation">@anim/in</item> <item name="android:activityOpenExitAnimation">@anim/out</item> <item name="android:activityCloseEnterAnimation">@anim/in</item> <item name="android:activityCloseExitAnimation">@anim/out</item> </style>
從名為A的activity跳轉到B,B也可以跳轉到C,其中轉場動畫設置在B上。
android:activityOpenEnterAnimation:指的是,進入B時的動畫。
android:activityOpenExitAnimation:指的是進入B時,A的動畫,與B的動畫是一起顯示的。
android:activityCloseEnterAnimation:通過B跳轉到C后,后退到B時,B的進入動畫
android:activityCloseExitAnimation:通過B跳轉到C后,后退到B時,C的退出動畫
最終,為activity設置一個theme,如下:
<activity android:name="com.example.androidresources.AnimationDrawableActivity" android:theme="@style/animationofactivity"/>
實現activity進出場動畫的第3種方式:在activity中用代碼設置
在所要設置動畫的activity的onCreate方法中,設置了setContentView()之后,寫如下代碼:
這種方法除了用在activity的轉場動畫之外,還能用在dialog中。
LayoutParams params = getWindow().getAttributes(); params.windowAnimations = R.style.enterandentrance; getWindow().setAttributes(params);
一些動畫小常識:
1、調用overridePendingTransition(enterAnim, exitAnim)時,enterAnim和exitAnim如果有為0的值,指的是不設置該動畫。
2、如果進入一個activity時,想讓前一個activity靜止不動,那么需要專門寫一個動畫,如下:
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0" android:toXDelta="0" android:duration="1000"/>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。