如何使用xml文件设置爆炸过渡

MJa*_*gir 6 android android-animation android-transitions

我正在尝试setEnterTransition使用explode.xml文件。

我尝试了这个

<?xml version="1.0" encoding="utf-8"?>
<transitionManager xmlns:android="http://schemas.android.com/apk/res/android">
    <transition android:transition="@transition/explode" />
</transitionManager>
Run Code Online (Sandbox Code Playgroud)

和这个

<?xml version="1.0" encoding="utf-8"?>
    <transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
        <explode
            android:duration="500"
            android:interpolator="@android:interpolator/bounce" />
 </transitionSet>
Run Code Online (Sandbox Code Playgroud)

但是爆炸动画没有用,有什么想法吗?

Hei*_*erg 9

首先,explode.xmlres/transition文件夹中创建用于爆炸过渡的过渡XML 。如,

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <explode
        android:duration="320" />
</transitionSet>
Run Code Online (Sandbox Code Playgroud)

然后,在styles.xmlAppTheme设置android:windowContentTransitions为true的情况下,参考EnterExitexplode过渡,如下所示:

<item name="android:windowContentTransitions">true</item>
<item name="android:windowEnterTransition">@transition/explode</item>
<item name="android:windowExitTransition">@transition/explode</item>
Run Code Online (Sandbox Code Playgroud)

现在开始您的活动,

ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this);
Intent intent = new Intent(MainActivity.this, SecondActivitiy.class);
startActivity(intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)

  • @HeisenBrg,我想在这里问几个问题1)在ActivityOptions或其他任何地方,我们没有编写任何代码来反映我们正在使用特定的爆炸转换,android如何知道我们想要使用该转换。2)如果我们在转换文件夹中进行更多转换,我们如何指定哪个活动将发生哪个转换?3)我们可以在java中使用Explodeexplode=newExplode()来实现Activity之间的转换吗?如果是这样,我们怎样才能做到这一点。我将感谢您的回答。 (2认同)