Android通过Animation改变自带的Activity切屏效果

jopen 11年前

若是感觉自带的Activity切换效果过于单一,我们可以通过Animation改变默认的切换效果。

在此提供一种切换方案。

在res目录下新建anim文件夹,用于存放Animation的XML文件。

zoomin.xml文件
    <?xml version="1.0" encoding="utf-8"?>        <set xmlns:android="http://schemas.android.com/apk/res/android"            android:interpolator="@android:anim/decelerate_interpolator" >                    <scale                android:duration="1000"                android:fromXScale="2.0"                android:fromYScale="2.0"                android:pivotX="50%p"                android:pivotY="50%p"                android:toXScale="1.0"                android:toYScale="1.0" />                </set>  

zoomout.xml文件
    <?xml version="1.0" encoding="utf-8"?>        <set xmlns:android="http://schemas.android.com/apk/res/android"            android:interpolator="@android:anim/decelerate_interpolator"            android:zAdjustment="top" >                    <scale                android:duration="1000"                android:fromXScale="1.0"                android:fromYScale="1.0"                android:pivotX="50%p"                android:pivotY="50%p"                android:toXScale=".5"                android:toYScale=".5" />                    <alpha                android:duration="@android:integer/config_mediumAnimTime"                android:fromAlpha="1.0"                android:toAlpha="0" />                </set>  

应用

在原先的切屏代码后面加上(该动画的显示对SDK的版本有一定的要求):

int version = Integer.valueOf(android.os.Build.VERSION.SDK);    if(version >= 5) {          overridePendingTransition(R.anim.zoomin, R.anim.zoomout);   
例如:
    Intent intent2 = new Intent();        intent2.setClass(MyQQActivity.this,Tabs.class );        startActivity(intent2);         int version = Integer.valueOf(android.os.Build.VERSION.SDK);         if(version >= 5) {                  overridePendingTransition(R.anim.zoomin, R.anim.zoomout);         }