常用页面跳转动画

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sqf251877543/article/details/77566858

1、res目录下新建anim文件夹,在anim文件夹下新建xml文件

slide_right_in.xml(右边进入动画)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="100.0%p"
        android:toXDelta="0.0" />
</set>

slide_right_out.xml(右边退出动画)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="0.0"
        android:toXDelta="100.0%p" />
</set>

2、代码:

//进入动画
public class MainActivity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //进入动画
                ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeCustomAnimation(MainActivity.this,R.anim.slide_right_in,0);
                ActivityCompat.startActivity(MainActivity.this, new Intent(MainActivity.this, TestActivity.class), optionsCompat.toBundle());
            }
        });
    }

}
//退出动画
public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        //退出动画
        overridePendingTransition(0, R.anim.slide_right_out);
    }
}

也可以把进入、退出动画写在一起

public static void rightEnterAndRightExit(Context context, Intent intent) {
        ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeCustomAnimation(context,
                R.anim.slide_right_in, R.anim.slide_right_out);
        ActivityCompat.startActivity(context, intent, optionsCompat.toBundle());
    }

====================================================
从左边进入动画slide_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="-100.0%p"
        android:toXDelta="0.0" />
</set>

从左边退出动画slide_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="0.0"
        android:toXDelta="-100.0%p" />
</set>

====================================================
从底下进入动画slide_bottom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_decelerate_interpolator"
     android:shareInterpolator="true">
    <translate
        android:duration="300"
        android:fromYDelta="100%p"
        android:toYDelta="0.0" />
</set>

从底下退出动画slide_bottom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_decelerate_interpolator"
     android:shareInterpolator="true">
    <translate
        android:duration="300"
        android:fromYDelta="0.0"
        android:toYDelta="100%p" />
</set>

====================================================
若要对所有Activity的页面跳转设置统一的动画,只需使用MyTheme主题即可:

 <!--统一页面跳转动画-->
    <style name="ActivitySwitchAnimation">
        <item name="android:activityOpenEnterAnimation">@anim/slide_bottom_in</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_bottom_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_bottom_in</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_bottom_out</item>
    </style>

    <style name="MyTheme" parent="AppTheme">
        <item name="android:windowAnimationStyle">@style/ActivitySwitchAnimation</item>
    </style>

猜你喜欢

转载自blog.csdn.net/sqf251877543/article/details/77566858
今日推荐