android Activity切换动画效果

jopen 10年前

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

一、设置样式

先看看实现动画的样式:

</div> </div>
    <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>  

在另一个样式中引用该动画样式的样式:
</div> </div>
    <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>  
</div> </div> 缺陷:如果需要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不会有动画