打开Activity页面时,转场动画,打开和退出动画,兼容所有Android系统版本的处理办法

从一个Activity A跳转到另外一个Activity B,B页面从一个自定义的动画中出现,生活中常见的app都会自定义一个动画,也有的是手机里面定制好的原生动画,这里只谈加载B页面时的动画,A页面动画不理会,那么这样做就可以了,看代码

一、先写两个动画进入和退出时候用的(动画根据具体需要自行定义即可,但系统支持的时间最多300毫秒,过了这个时间推页面退出的时候会直接闪掉,现在的应用都处理成300毫秒以内的)

1、pop_enter_anim.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate

       android:duration="300"

       android:fromXDelta="100%p"

       android:interpolator="@android:anim/accelerate_decelerate_interpolator"

       android:toXDelta="0" />

</set>

2、pop_exit_anim.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate

      android:duration="300"

      android:fromXDelta="0"

      android:interpolator="@android:anim/accelerate_decelerate_interpolator"

      android:toXDelta="100%p" />

</set>

二、定义一个动画样式,这里有两个item属性值,注意搭配,打开Acticity和返回退出Activity时候动画都能生效

 <style name="animationUp" parent="android:Animation">

        <item name="android:activityOpenEnterAnimation">@anim/pop_enter_anim</item>

        <item name="android:activityOpenExitAnimation">@anim/pop_exit_anim</item>

</style>

三、定义一个Manifest中注册该Activity的Them样式,这几个属性够了,特别是最后两个属性一定要加上

<style name="ThemeActivity">

    <item name="android:windowNoTitle">true</item>

   <item name="android:windowAnimationStyle">@style/animationUp</item>

   <item name="android:windowIsTranslucent">true</item>

   <item name="android:windowBackground">@android:color/transparent</item>

</style>

四、注册该Activity到Manifest中,加上them属性就行了

 <activity

           android:name=".AnimationActivity"

           android:theme="@style/ThemeActivity">

 </activity>

五、在你要跳转到这个页面的地方直接

     Intent intent = new Intent(v.getContext(), AnimationActivity.class);

     startActivity(intent);

六、5.0系统以上需要在B页面的finish()方法里加上一句,否则退出动画不生效

    @Override

    public void finish() {

       super.finish();

       overridePendingTransition(R.anim.pop_enter_anim,R.anim.pop_exit_anim);

   }

ok!

生活不易,全靠努力,谢谢支持了

猜你喜欢

转载自blog.csdn.net/u011652925/article/details/79401237