在启动活动时设置setInAnimation和setOutAnimation

Jit*_*hin 0 android

我有以下情况

TabActivity>group activiyt>(A->B->C)
Run Code Online (Sandbox Code Playgroud)

这里A,B和C是活动.我加载这样的

 setContentView(this,getLocalActivityManager().startActivity("zero",intent.addFlags(Intent.FLG_ACTIVITY_CLEAR_TOP)) .getDecorView());
Run Code Online (Sandbox Code Playgroud)

我需要的是当我将一个活动改为另一个活动时设置动画(从左/右滑动)?
目前我使用以下动画,后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;
    }  
Run Code Online (Sandbox Code Playgroud)

但它只对新视图进行动画制作.
我需要当前的左移同时从右移动新的移动
有没有办法设置setInAnimationsetOutAnimationstartActivity像视图翻板?
谢谢

Lum*_*mis 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);
Run Code Online (Sandbox Code Playgroud)

这里的动画是在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>
Run Code Online (Sandbox Code Playgroud)

它将一个物体从屏幕的右边100%宽度移动到左边......