首页 > 代码库 > android Activity切换动画效果

android Activity切换动画效果

  为Activity设置左右进出的效果,可以通过在Mainfest.xml文件中设置主题的方式来实现。还可以使用java代码。

一、设置样式

先看看实现动画的样式:

<style name="AnimationRToL" mce_bogus="1" parent="@<span style="color:#ff0000;">android:style/Animation.Activity</span>">
        <item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>
        <item name="android:activityOpenExitAnimation">@anim/out_to_left</item>
        <item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>
        <item name="android:activityCloseExitAnimation">@anim/out_to_right</item>
    </style>

在另一个样式中引用该动画样式的样式:

 <style name="ThemeRToL" mce_bogus="1" parent="@android:style/Theme.NoTitleBar">
        <item <span style="color:#ff0000;">name="android:windowAnimationStyle</span>">@style/AnimationRToL</item>
        <item name="android:windowNoTitle">true</item>
    </style>

activity的配置:

<activity
            android:name="com.diiji.police.CPActivity"
            android:screenOrientation="portrait"
            android<span style="color:#ff0000;">:theme</span>="@style/ThemeRToL" >
        </activity>
缺陷:如果需要activity1跳转到activity2,activity2跳转到activity3,那么我想在activity3返回的时候,直接跳转到activity1。也就是在activity2跳转到activity3时,activity2要finish掉,那么这时候就会出现黑屏的现象。因为finishi的activity也有退出的动画效果。

要解决这个问题,我使用一个单例模式的activity管理类,在activity3调用onDestory()时,指定finish  activity2。当然,也可以试试,Intent.FLAG_CLEAR_TOP这种方式。



二、overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);

1 它必需紧挨着startActivity()或者finish()函数之后调用
2.它只在android2.0以及以上版本上适用

3.finish的activity不会有动画