<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> android中activity间动画跳转,如何能添加上动画,app的用户交互性就显得提升不少。</span>
我们的项目的不仅仅包括业务功能,用户体验和交互我们也得充分考虑。
android中activity间动画跳转,可以是个别anctivity间,也可以设置所有activity的动画跳转和退出跳转。像我们都比较熟悉的大众点评网,已经这样做了。
首先,我们来说说单个anctivity的动画跳转;
overridePendingTransition(int enterAnim, int exitAnim)这个函数就可帮我们实现,前提是准备好跳转动画资源,可以使系统的,也可以是自定义的。看实例代码:
package com.example.flashScreen;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
/**
*
* @ClassName: SplashScreen
* @Description: TODO(跳转动画)
* @author daodao ( dao.dev@qq.com )
* @date 2014年11月25日 上午10:06:51
*
*/
public class SplashScreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Intent mainIntent = new Intent(SplashScreen.this,
// MainActivity.class);
Intent mainIntent = new Intent(SplashScreen.this,
com.example.TranslateAnimation.Menu.TranslateAnimationMenu.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
//实现淡入淡出的效果
overridePendingTransition(android.R.anim.fade_in,
android.R.anim.fade_in);
//由左向右滑入的效果
// overridePendingTransition(android.R.anim.slide_in_left,android.
// R.anim.slide_out_right);
//实现 zoomin 和 zoomout,即类似 iphone 的进入和退出时的效果 (自定义动画zoomin,zoomout)
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
}
}, 3000);
}
}
再者,我们来谈谈项目中所有anctivity的动画跳转,即适应于全局的动画跳转;
准备好进入和退出动画资源文件,接下来我们需要定义样式资源,之前我们设置动画效果都是写在activity中,只能对单个activity定义动画。现在我们对所有的activity定义动画效果,我们不妨设想一下应该定义一个样式,在所有包裹activity的地方引入样式。这样我们就想到了AndroidManifest.xml里的application 了,他里面生命所有的activity,明白了这些就好办了。
接下来我们在style.xml声明动画的样式
<style name="MyAnimationActivity" mce_bogus="1">
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1">
<item name="android:activityOpenEnterAnimation">@anim/anim_enter</item>
<item name="android:activityOpenExitAnimation">@anim/anim_exit</item>
<item name="android:activityCloseEnterAnimation">@anim/back_enter</item>
<item name="android:activityCloseExitAnimation">@anim/back_exit</item>
</style>
然后在 AndroidManifest.xml里声明样式
<application
android:icon="@drawable/ic_launcher"
android:theme="@style/MyAnimationActivity"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".StartActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".OtherActivity1"></activity> <activity android:name=".OtherActivity2"></activity> <activity android:name=".OtherActivity3"></activity>
</application>
so,这样就完成类似于大众点评网activity的动画跳转的功能。