【Android 基础】利用主题Theme自定义Activity切换动画

来源:互联网 发布:ubuntu 图形界面 死机 编辑:程序博客网 时间:2024/06/05 05:37

先介绍一般常见的设置Activity切换动画的方法:

需求:当向左滑动Activity的时候,下一个Activity从右边进来

  1. 在res下新建anim文件夹,然后在里面建立base_slide_remain.xml以及base_slide_right_in.xml

    base_slide_remain.xml

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

base_slide_right_in.xml

<?xml version="1.0" encoding="utf-8"?><set>    <translate xmlns:android="http://schemas.android.com/apk/res/android"        android:interpolator="@android:anim/accelerate_interpolator"         android:duration="300"         android:fromXDelta="100%"         android:toXDelta="0%" /></set>

2.在切换Activity时设置切换动画效果:

    public void pre(View view) {        startActivity(new Intent(this, MainActivity.class));        overridePendingTransition(R.anim.base_slide_left_in, R.anim.base_slide_remain);    }    public void next(View view) {        startActivity(new Intent(this, MainActivity.class));        overridePendingTransition(R.anim.base_slide_right_in, R.anim.base_slide_remain);    }

pre(View view) 和 next(View view)都是我的动作监听函数,故名思议,当向前(左)滑动的时候,调用pre()函数.反之亦然。

overridePendingTransition(orgs1,orgs2)函数中,参数一的作用是设置进来的动画,参数二是退出的动画。

利用主题Theme自定义Activity切换动画

这里演示淡入淡出的切换Activity的动画效果

  1. 在res下新建anim文件夹,并新建文件如下:

fade_in.xml

<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="300"    android:fromAlpha="0.0"    android:interpolator="@android:anim/accelerate_interpolator"    android:toAlpha="1.0" />

fade_out.xml

<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="300"    android:fromAlpha="1.0"    android:interpolator="@android:anim/accelerate_interpolator"    android:toAlpha="0.0" />
  1. 然后在values文件夹下的styles.xml中的resources标签内写:
    <style name="Anim_fade" parent="android:Theme.NoTitleBar">        <item name="android:windowAnimationStyle">@style/fade</item>    </style>    <style name="fade" parent="@android:style/Animation.Activity">        <item name="android:activityOpenEnterAnimation">@anim/fade_in</item>        <item name="android:activityOpenExitAnimation">@anim/fade_out</item>        <item name="android:activityCloseEnterAnimation">@anim/fade_in</item>        <item name="android:activityCloseExitAnimation">@anim/fade_out</item>    </style>

3.最后在AndroidManifest.xml中的Activity的声明上加入android:theme=”@style/Anim_fade”即可
那么关于设定的这个Acitvity的打开以及关闭都会和主题设定的切换效果一样了。

0 0
原创粉丝点击