我正在开发一个Android应用程序,并且在另一个活动中使用此方法启动了一个活动(通过buttonclick)。
private void showInfo(){
startActivity(new Intent(this, InfoActivity.class));
overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
}
动画有效,它从底部滑到顶部,活动就会运行。然后我单击新活动中的一个按钮将其关闭,代码如下:
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);
}
});
如果用户按下“后退”按钮,则显示以下代码:
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
}
最后,slide_in_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" />
并且slide_out_bottom:
<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" />
问题是,新活动按计划从底部滑入,但是当我单击模拟器上的后退按钮或按下图像按钮完成()活动时,它返回的活动从中滑入底部就像新活动一样,但我希望它从顶部向下滑动。我怎样才能做到这一点,我做错了什么?
答案 0 :(得分:0)
试试这个:
@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();
}
我希望这会为你提供帮助....
答案 1 :(得分:0)
这是我的顶级代码:
<?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>
改变你的需要。在你当前的代码中,你从0开始动画,它就是它实际所在的位置,你需要从-100开始,它在屏幕上方而100在下面。
同样在onBackPressed中只需这样调用:
// handle hardware back button
@Override
public void onBackPressed() {
finish();
overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright);
}