我正在尝试编程android。
现在谈谈我的情况:
我有两个应该被Intents联系的活动。当我从活动1切换(通过单击按钮)时,我制作了动画文件并覆盖了转换,因此活动1向左滑出,活动2从右侧滑入。
如何进行以下操作:当我按下活动2中的按钮时,活动幻灯片将反过来,以便活动2向右滑动,活动从右侧滑入。
我的代码查找动画看起来如下:
slide_in.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
&GT;
slide_out.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,我在另一个意图中需要做些什么?
感谢您帮助我;)
答案 0 :(得分: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>
slide_out
<?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);
答案 1 :(得分: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();