常用页面跳转动画

来源:互联网 发布:重复读单词软件 编辑:程序博客网 时间:2024/05/29 15:42

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>
原创粉丝点击