0

我正在尝试编写android。

所以现在我的情况:

我有两个应该由 Intents 连接的活动。当我从活动 1 切换(通过单击按钮)时,我制作了一个动画文件并覆盖了过渡,因此活动 1 向左滑出,活动 2 从右侧滑入。

如何进行以下操作:当我在活动 2 中按下按钮时,活动幻灯片应相反,以便活动 2 向右滑出,活动一从右侧滑入。

我的代码查找动画如下所示:

幻灯片输入.xml

<?xml version="1.0" encoding="utf-8"?>
<translate
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="@android:integer/config_longAnimTime" 
      android:fromXDelta="100%p" 
      android:toXDelta="0%p">
</translate

>

幻灯片输出.xml

<?xml version="1.0" encoding="utf-8"?>
<translate
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:duration="@android:integer/config_longAnimTime" 
      android:fromXDelta="0" 
      android:toXDelta="-100%p">
</translate>

这就是我启动活动 2 的意图代码:

Intent i = new Intent(First.this, Second.class);
                startActivity(i);
                overridePendingTransition(R.anim.slid_in, R.anim.slid_out);

从 act.2 到 act.1,我必须在另一个意图中做什么?

感谢你们对我的帮助 ;)

4

2 回答 2

0

制作 2 个新的 XML,只需反转第一个,slide_in

<?xml version="1.0" encoding="utf-8"?>
<translate
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="@android:integer/config_longAnimTime" 
      android:fromXDelta="-100%p" 
      android:toXDelta="0%p">
</translate>

滑出

<?xml version="1.0" encoding="utf-8"?>
<translate
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="@android:integer/config_longAnimTime" 
      android:fromXDelta="0%p" 
      android:toXDelta="100%p">
</translate>

并在您的活动2中将意图更改为此

Intent i = new Intent(Second.this, First.class);
                startActivity(i);
                overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
于 2013-07-20T17:20:06.353 回答
0

您还可以查看Jack Wharton的优秀库:nineoldandroids

更易于使用,与 Froyo 的任何 Android 版本兼容(您将能够使用 HoneyComb 中添加的新类)等等。

AnimatorSet set = new AnimatorSet();
set.playTogether(
ObjectAnimator.ofFloat(myView, "rotationX", 0, 360),
ObjectAnimator.ofFloat(myView, "rotationY", 0, 180),
ObjectAnimator.ofFloat(myView, "rotation", 0, -90),
ObjectAnimator.ofFloat(myView, "translationX", 0, 90),
ObjectAnimator.ofFloat(myView, "translationY", 0, 90),
ObjectAnimator.ofFloat(myView, "scaleX", 1, 1.5f),
ObjectAnimator.ofFloat(myView, "scaleY", 1, 0.5f),
ObjectAnimator.ofFloat(myView, "alpha", 1, 0.25f, 1));
set.setDuration(5 * 1000).start();
于 2014-01-03T08:56:32.163 回答