AndroidのActivity之回顾跳转动画

来源:互联网 发布:北京应聘求职软件 编辑:程序博客网 时间:2024/06/05 01:02

啊,惯例图片还是要传,无图无真相!

点下一页效果是同步下滑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代码就不贴了!!!

原创粉丝点击