Android过渡动画无效

jas*_*son 5 android android-animation android-transitions android-5.0-lollipop

Android的过渡与爆炸和幻灯片是一样的.实际上我不认为它的动画效果.持续时间不是6秒.我该如何解决?

代码来自这里.

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

        Transition ts = new Slide();  //Slide(); //Explode();

        ts.setDuration(6000);
        getWindow().setEnterTransition( ts );
        getWindow().setExitTransition( ts );
        setContentView(R.layout.activity_main_activity);



    }




    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finishAfterTransition();
    }
Run Code Online (Sandbox Code Playgroud)

风格v21.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="BaseAppTheme" parent="android:Theme.Material.Light">
        <item name="android:colorControlHighlight">#0000AA</item>
        <item name="android:navigationBarColor">#0000AA</item>
        <item name="android:colorPrimaryDark">#0000AA</item>
        <item name="android:colorPrimary">#0000FF</item>
        <item name="android:colorAccent">#00FF00</item>
        <item name="android:windowBackground">@android:color/black</item>
        <item name="android:textColorPrimary">@android:color/white</item>

        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>

        <!-- specify enter and exit transitions -->
        <item name="android:windowEnterTransition">@transition/explode</item>
        <item name="android:windowExitTransition">@transition/explode</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

Cle*_*ade 13

在我自己的情况下,出于某种原因,Transition Animation在我的Android设备的开发者选项中关闭了.

只需转到设置 - >开发者选项 - >过渡动画比例:设置为动画比例1x


小智 5

您可以使用它来开始一个带有转换的新活动

startActivity(new Intent(this, NewActivity.class));
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
Run Code Online (Sandbox Code Playgroud)

创建文件 res/anim/slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false" >
     <translate android:duration="1000" android:fromXDelta="100%" android:toXDelta="0%" />
    <alpha android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

创建文件 res/anim/slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false" >
     <translate android:duration="2000" android:fromXDelta="0%" android:toXDelta="-100%"/>
     <alpha android:duration="2000" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

  • 这是一个糟糕的答案,它没有使用较新的 Transitions API(问题中使用的 API 以及用于所有未来活动转换的下一代 API)。 (14认同)
  • 这不是给定问题的答案 (2认同)