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