Android 自定义活动转换在Nexus4上不起作用
我已经声明了两个自定义动画,它们在运行安卓2.3.5和HTC Sense 3.5的HTC Desire s上运行得很好(自定义ROM,Endymion V3.5,因此我可以在操作系统上测试ICS之前)。打开新活动时,新屏幕从右侧滑入,关闭当前活动时,新屏幕从左侧滑入,因此一切正常。我的密码是:Android 自定义活动转换在Nexus4上不起作用,android,android-activity,android-animation,Android,Android Activity,Android Animation,我已经声明了两个自定义动画,它们在运行安卓2.3.5和HTC Sense 3.5的HTC Desire s上运行得很好(自定义ROM,Endymion V3.5,因此我可以在操作系统上测试ICS之前)。打开新活动时,新屏幕从右侧滑入,关闭当前活动时,新屏幕从左侧滑入,因此一切正常。我的密码是: overridePendingTransition(com.my.app.R.anim.slidein, com.my.app.R.anim.slideout); 声明动画的XML如下所示: slide
overridePendingTransition(com.my.app.R.anim.slidein, com.my.app.R.anim.slideout);
声明动画的XML如下所示:
slidein.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
确保您的来电正确无误。如果显式调用
finish()
,则需要在调用之后立即调用overridePendingTransition()
。如果你没有显式地调用finish()
,那么你需要重写onBackPressed()
并调用overridePendingTransition()
。在你的建议之后,我重写了finish()
,添加了overridePendingTransition(com.my.app.R.anim.slidein,com.my.app.R.anim.slideout)代码>在super.finish()之后代码>,此时将显示动画。但是,我得到的动画是打开一个新活动,而不是关闭当前活动。奇怪,我得看看,谢谢。
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
@Override
public void finish()
{
super.finish();
overridePendingTransition(com.my.app.R.anim.closeslidein, com.my.app.R.anim.closeslideout);
}