按下返回按钮时的动画效果

7
我已经在我的活动中添加了以下代码,并得到了期望的动画效果,但按下返回按钮时动画不同,即活动只是正常关闭。如何在按下返回按钮时添加动画?
public void notesAndCodeClick(View v){

    Intent notesIntent = new Intent(MainActivity.this, NotesActivity.class);
    ActivityOptions notesoptions = ActivityOptions.makeScaleUpAnimation(v, 0, 0, v.getWidth(), v.getHeight());
    startActivity(notesIntent, notesoptions.toBundle());
}

1
覆盖PendingTransition(从anim资源文件夹中的动画) - Rajesh
4个回答

8
尝试这个:

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
        this.overridePendingTransition(R.anim.trans_right_in,
                R.anim.trans_right_out);
    }

请将下面列出的两个文件都添加到您的anim文件夹中:

res --> anim

trans_right_in.xml

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

    <translate
        android:duration="@android:integer/config_shortAnimTime"
        android:fromXDelta="-100%p"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="0" />

</set>

trans_right_out.xml

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

    <translate
        android:duration="@android:integer/config_shortAnimTime"
        android:fromXDelta="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXDelta="100%p" />

</set>

2

当按下返回按钮时,您可以为Activity设置进入和退出动画。

从左到右的动画:

将此文件放置在res/anim/left_to_right.xml中:

 <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="false">
      <translate android:fromXDelta="-100%" android:toXDelta="0%"
                 android:fromYDelta="0%" android:toYDelta="0%"
                 android:duration="700"/>
    </set>

从右到左的动画:

将此文件放在res/anim/right_to_left.xml中:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate
     android:fromXDelta="0%" android:toXDelta="100%"
     android:fromYDelta="0%" android:toYDelta="0%"
     android:duration="700" />
</set>

现在在onBackPressed()方法中:

@Override
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.right_to_left, R.anim.left_to_right);   
}

2

只需要做一件事情,像这样在结束您的活动后调用动画

finish();
overridePendingTransition(R.anim.nothing,R.anim.nothing);

Happy Coding....


1
要在按下返回按钮时添加动画效果,您可以使用Activity类的onBackPressed()方法。
示例:
@Override
public void onBackPressed() {
    super.onBackPressed();
    // add your animation   
}

Android文档

public void onBackPressed (): 当活动检测到用户按下返回键时调用。默认实现只是结束当前活动,但您可以重写此方法以执行任何操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接