两个 Activity 之间的动画不起作用

发布于 2024-12-08 22:11:15 字数 1005 浏览 1 评论 0原文

我试图在两个活动之间制作幻灯片动画,然后一个活动启动另一个活动,

public void onClick(View view) {
    Intent intent = new Intent(TestAppActivity.this, SecondActivity.class);
    startActivityForResult(intent, 1);
    TestAppActivity.this.overridePendingTransition(R.anim.animation_enter,   R.anim.animation_leave);
    finish();
}

根本没有动画。对于输入,xml 是:

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="-100%"
    android:toXDelta="0%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="3000" />

还有请假:

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="0%"
    android:toXDelta="100%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="3000" />

我可以看出这里出了什么问题。使用安卓2.3.3。谢谢。

I am trying to do a slide animation between two Activities when then one starts the other,

public void onClick(View view) {
    Intent intent = new Intent(TestAppActivity.this, SecondActivity.class);
    startActivityForResult(intent, 1);
    TestAppActivity.this.overridePendingTransition(R.anim.animation_enter,   R.anim.animation_leave);
    finish();
}

There is no animation at all. The xmls are, for enter:

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="-100%"
    android:toXDelta="0%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="3000" />

And for leave:

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="0%"
    android:toXDelta="100%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="3000" />

I can see what is gong wrong here. Using Android 2.3.3. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北城半夏 2024-12-15 22:11:15

overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave); 放在 finish(); 之后。

Put the overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave); after finish();.

居里长安 2024-12-15 22:11:15

要制作第一个 Activity 向左移动、第二个 Activity 从右侧进入的动画:

slide_out_left.xml :

<?xml version="1.0" encoding="utf-8"?>

<!--
 Animation : Perform animation : Out - Direction : Left
-->

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
       android:duration="400"
       android:fromXDelta="0"
       android:toXDelta="-100%p" />

</set>

slide_in_right.xml :

<?xml version="1.0" encoding="utf-8"?>

<!--
 Animation : Perform animation : In - Direction : Right
-->

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="400"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

注意 :如果需要,您可以更改 android:duration

并且您必须添加以下代码:

public void onClick(View view) {

   Intent intent = new Intent(TestAppActivity.this, SecondActivity.class);
   startActivity(intent);
   overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
   finish();
}

To do an animation where the first activity go to the left and the second activity enters from the right :

slide_out_left.xml :

<?xml version="1.0" encoding="utf-8"?>

<!--
 Animation : Perform animation : Out - Direction : Left
-->

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
       android:duration="400"
       android:fromXDelta="0"
       android:toXDelta="-100%p" />

</set>

slide_in_right.xml :

<?xml version="1.0" encoding="utf-8"?>

<!--
 Animation : Perform animation : In - Direction : Right
-->

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="400"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

Note : you can change android:duration if you want.

And you have to add this code :

public void onClick(View view) {

   Intent intent = new Intent(TestAppActivity.this, SecondActivity.class);
   startActivity(intent);
   overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
   finish();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文