Android利用Theme自定义Activity间的切换动画
大多Android系统默认Activity间的动画切换效果为,右边滑入,左边滑出;有时候我们的需求可能是要求所有Activity的切换为淡入淡出的效果,这时候就可能需要改变一下默认的切换风格。
下面开始实现:
首先在res文件夹下建立anim文件夹,然后在里面建立fade_in.xml和fade_out.xml两个动画资源
fade_in.xml
<?xmlversion="1.0"encoding="utf-8"?> <alphaxmlns: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
<?xmlversion="1.0"encoding="utf-8"?> <alphaxmlns: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"/>
然后在values文件夹下的styles.xml中的resources标签内写:
<stylename="Anim_fade"parent="android:Theme.NoTitleBar"> <itemname="android:windowAnimationStyle">@style/fade</item> </style> <stylename="fade"parent="@android:style/Animation.Activity"> <itemname="android:activityOpenEnterAnimation">@anim/fade_in</item> <itemname="android:activityOpenExitAnimation">@anim/fade_out</item> <itemname="android:activityCloseEnterAnimation">@anim/fade_in</item> <itemname="android:activityCloseExitAnimation">@anim/fade_out</item> </style>
最后一步在AndroidManifest.xml中的Activity的声明上加入android:theme="@style/Anim_fade"
<?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.example.customanimationforactivity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar"> <activity android:name="com.example.customanimationforactivity.MainActivity" android:label="@string/app_name" android:theme="@style/Anim_fade"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".AppActivity"android:theme="@style/Anim_fade"> </activity> </application> </manifest>
贴下SplashActivity的代码:
packagecom.example.customanimationforactivity; importandroid.app.Activity; importandroid.content.Intent; importandroid.os.Bundle; importandroid.os.Handler; publicclassMainActivityextendsActivity { privateHandlerhandler=newHandler(); @Override protectedvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler.postDelayed(newRunnable() { @Override publicvoidrun() { Intentintent=newIntent(MainActivity.this,AppActivity.class); startActivity(intent); finish(); } },1000); } }
源码下载:http://xiazai.jb51.net/201609/yuanma/CustomAnimation(jb51.net).rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。