按下后退按钮的动画

时间:2015-10-30 10:51:21

标签: android

我已将以下代码添加到我的活动中并获得了所需的动画,但按下后退按钮动画不一样,即活动正常关闭。如何在按下后退按钮时添加动画

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());
}

4 个答案:

答案 0 :(得分:4)

试试这个,

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

将以下列出的文件添加到动画文件夹

  

res - >动画

<强> 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>

答案 1 :(得分:1)

您可以在按下按钮的同时为活动设置IN和OUT动画。

从左到右动画:

将此文件放入 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 :(得分:1)

你必须做一件事,在完成你的活动之后调用动画

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

快乐编码......

答案 3 :(得分:0)

要在按下后退按钮时添加动画,可以使用Activity类的onBackPressed()方法。

示例

@Override
public void onBackPressed() {
    super.onBackPressed();
    // add your animation   
}

Android文档

  

public void onBackPressed():   当活动检测到用户按下后退键时调用。默认实现只是完成当前活动,但您可以覆盖它以执行任何操作。