我有以下情况
TabActivity>group activiyt>(A->B->C)
这里A,B和C是活动。我加载像这样
setContentView(this,getLocalActivityManager().startActivity("zero",intent.addFlags(Intent.FLG_ACTIVITY_CLEAR_TOP)) .getDecorView());
当我将一项活动改为另一项活动时,我需要设置动画(从左/右滑动)?
目前,我在setContentView
之后使用了以下动画到新视图
public static Animation inFromRightAnimation() {
Animation inFromRight = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);
inFromRight.setDuration(ANIMATIION_DURATION);
inFromRight.setInterpolator(new AccelerateInterpolator());
return inFromRight;
}
但它只对新视图进行动画制作
我需要当前的举动离开同时从右侧的新举动
有没有办法在startActivity中设置setInAnimation
和setOutAnimation
,例如视图翻板?
谢谢
答案 0 :(得分:6)
您可以在活动之间进行过渡动画。下面是一个示例,用于在启动(LaunchActivity)屏幕和游戏主菜单屏幕之间的5秒后进行自定义动画转换:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
/* Create an intent that will start the main activity. */
Intent mainIntent = new Intent(LaunchActivity.this,
MainMenuActivity.class);
LaunchActivity.this.startActivity(mainIntent);
/* Finish splash activity so user cant go back to it. */
LaunchActivity.this.finish();
/* Apply our splash exit (fade out) and main
entry (fade in) animation transitions. */
overridePendingTransition(R.anim.mainfadein,R.anim.splashfadeout);
}
}, 5000);
这里的动画是在xml文件中定义的,但您可以在代码中创建它们,而且您已经在创建它们。
您的翻译xml文件应保存在res中的anim文件夹中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="1000" />
</set>
将对象从屏幕的右侧100%宽度移动到左侧......