在启动活动时设置setInAnimation和setOutAnimation

时间:2011-02-13 06:29:11

标签: android

我有以下情况

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中设置setInAnimationsetOutAnimation,例如视图翻板?
谢谢

1 个答案:

答案 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%宽度移动到左侧......