我正在开发一个包含许多代表阶段的活动的应用程序。所以有 Stage1Activity、Stage2Activity、Stage3Activity 等。每个活动都有一个按钮(或多个按钮),一旦单击,用户就会进入下一个活动。我想做的是动画这些活动之间的过渡。
我在 res/anim 文件夹中添加了两个 XML 文件。push_left_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
而 push_left_out.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
在主要活动 Stage1Activity 我有:
public class Stage1Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stage1);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
return true;
}
return super.onKeyDown(keyCode, event);
}
}
现在,当我在活动中移动时,过渡可以正常工作。新活动将旧活动从右向左推到视野之外。当用户按下设备上的后退按钮时,我想要一个相反的效果,但是会播放相同的过渡动画。我玩过 android:fromXDelta 标签并取得了一些非常奇怪的结果,但我只是不知道如何设置它,以便在按下设备上的后退按钮时,新的活动(实际上是旧的一个新调用的意图) 从左到右推出旧的。
基本上我想让它看起来像你在通过阶段时向右移动,但是当你按下它时它应该看起来像你回到了(向左)。抱歉,如果这是一个愚蠢的问题,但我真的很困惑,我需要帮助:/