啊,慣例圖片還是要傳,無圖無真相!
點下一頁效果是同步下滑Fall,進入下一頁按返回是往左push動畫。
分析:
第一步:進入下一個頁面執行的操作是,當前的頁面隱退(activityOpenExitAnimation),將要出現的畫面進來(activityOpenEnterAnimation),當前的頁面在后層,下一個頁面在前層。
第二步:進入了第二個頁面按返回鍵:當前的頁面隱退(activityCloseEnterAnimation),之前的頁面進來(activityCloseExitAnimation),當前的頁面在后層,前一個頁面在前層。
定義好了這四個動畫之后,需要定義一個繼承至android:style/Animation.Activity的風格,而這個風格還不能直接應用在activity上,因為這些動畫要生成在windowAnimationStyle才可以應用在Activity主題上。
看style.xml風格文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <style mce_bogus="1" name="ThemeActivity"> <item name="android:windowAnimationStyle">@style/AnimationActivity</item> <item name="android:windowNoTitle">true</item> </style> <style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1"> <item name="android:activityOpenEnterAnimation">@anim/open_enter</item> <item name="android:activityOpenExitAnimation">@anim/open_exit</item> <item name="android:activityCloseEnterAnimation">@anim/close_enter</item> <item name="android:activityCloseExitAnimation">@anim/close_exit</item> </style> </resources>
要再看看anim.xml動畫文件么?
open_enter.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="-100%" android:toYDelta="0" android:duration="1000" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="1000"/> </set>
open_exit.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="100%" android:duration="1000" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="1000"/> </set>
close_enter.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="1000"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="1000"/> </set>
close_exit.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="1000"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="1000"/>
然后看menifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.com.bvin.demo.anim" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <!-- android:theme="@style/ThemeActivity" 將應用於所有Activity --> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/ThemeActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NextActivity" android:theme="@style/ThemeActivity"> <!-- android:theme="@style/ThemeActivity" 用於當前Activity --> </activity> </application> </manifest>
java代碼就不貼了!!!