Android 如何在活动中播放动画以意图开始,以及何时以finish()结束

Android 如何在活动中播放动画以意图开始,以及何时以finish()结束,android,android-animation,Android,Android Animation,我有一个我正在开发的android应用程序,一个活动是在另一个活动中用这个方法启动的(通过buttonclick) 动画开始工作,从底部向上滑动,然后活动开始运行。然后我点击新活动中的一个按钮将其关闭,代码如下: ImageButton info = (ImageButton) findViewById(R.id.infoButton); info.setOnClickListener(new View.OnClickListener() { public void on

我有一个我正在开发的android应用程序,一个活动是在另一个活动中用这个方法启动的(通过buttonclick)

动画开始工作,从底部向上滑动,然后活动开始运行。然后我点击新活动中的一个按钮将其关闭,代码如下:

ImageButton info = (ImageButton) findViewById(R.id.infoButton);
    info.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
            overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
        }
    });
如果用户按下“后退”按钮,则显示以下代码:

最后是幻灯片底部的代码:

<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="300" />

    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="100" android:startOffset="200" />

然后从底部滑出:

<translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="300" />

    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="100" android:startOffset="200" />

问题是,新活动按计划从底部滑入,但当我单击emulator上的“上一步”按钮或按imagebutton完成()活动时,它返回的活动会像新活动一样从底部滑入,但我希望它从顶部滑入。我怎样才能做到这一点,我做错了什么?

试试这个:

@Override
protected void onPause(){
  super.onPause();
  overridePendingTransition(R.anim.your_exit_animation_one, R.anim.your_exit_animation_two);
}

public void onBackPressed(){
   //you can do your other onBackPressed logic here..

   //Then just call finish()
   finish();
}

我希望这将对您有所帮助……

以下是我的自顶向下代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="1000"
        android:fromYDelta="-100%p"
        android:toYDelta="0%p" />

</set>

这对我按下后退按钮的问题没有帮助,后退按钮没有显示正确的动画。在进一步使用时,它甚至根本解决不了问题。同样的事情也会发生。在活动开始时以及调用finish()时播放相同的动画;但是我想播放退出动画。
@Override
protected void onPause(){
  super.onPause();
  overridePendingTransition(R.anim.your_exit_animation_one, R.anim.your_exit_animation_two);
}

public void onBackPressed(){
   //you can do your other onBackPressed logic here..

   //Then just call finish()
   finish();
}
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="1000"
        android:fromYDelta="-100%p"
        android:toYDelta="0%p" />

</set>
// handle hardware back button
    @Override
    public void onBackPressed() {
        finish();
        overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright);

    }