为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不会有动画