我是否可以使用交换动作而不是默认动作来打开Android活动。 默认情况下,当我从另一个活动中调用一个活动时,新活动从中间打开,并且增长到匹配屏幕大小,我希望我的应用程序中的活动从侧面打开并覆盖它们之前的活动。
有可能吗?
答案 0 :(得分:2)
是的,你可以通过cutom动画做到这一点,就像我在这里做的那样:
将activity_push_up_in.xml放入anim文件夹: -
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
现在,再次在你的anim文件夹中放入另一个xml push_up_out.xml: -
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="0"
android:toYDelta="-100%p" />
</set>
现在将此代码放入您的java文件中以使用此动画启动活动: -
overridePendingTransition(R.anim.activity_push_up_in, R.anim.push_up_out);
答案 1 :(得分:1)
简短回答:是的,有可能
在API级别5中,您可以调用overridePendingTransition方法指定显式过渡动画。
startActivity();
overridePendingTransition(R.anim.hold, R.anim.some_animation);
您当然需要在动画xml中创建想要使用的动画。
答案 2 :(得分:0)
使用此
overridePendingTransition(0, android.R.anim.slide_out_right);
答案 3 :(得分:0)
您需要使用动画并在启动新活动时覆盖当前动画。 看一下这个答案Slide right to left Android Animations
答案 4 :(得分:0)
就像我做的一样:
put activity_push_up_in.xml in your anim folder :-
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="200"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
now, put another xml push_up_out.xml again in your anim folder :-
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="200"
android:fromYDelta="0"
android:toYDelta="-100%p" />
</set>
Now put this code in your java file to start intent activity with this animation :-
overridePendingTransition(R.anim.activity_push_up_in, R.anim.push_up_out);