如何使用XML文件设置爆炸式转换

7

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

我尝试过以下代码:

<?xml version="1.0" encoding="utf-8"?>
<transitionManager xmlns:android="http://schemas.android.com/apk/res/android">
    <transition android:transition="@transition/explode" />
</transitionManager>

and this

<?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>

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


1
你在代码中如何使用这个 xml - Aditya
我正在使用它在我的风格中 <item name="android:windowAnimationStyle">@transition/explode</item> - MJakhongir
你需要在style.xml中创建一个WindowAnimationTransition样式(包括android:windowEnterAnimationandroid:windowExitAnimation)。然后将这个样式作为windowAnimationStyle使用。 - Aditya
1个回答

17
首先,在res/transition文件夹中创建名为explode.xml的Transition XML,用于爆炸过渡效果。
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <explode
        android:duration="320" />
</transitionSet>

然后,在您的AppTheme中的styles.xml中,将android:windowContentTransitions设置为true,并像下面这样引用explode过渡效果作为进入退出

<item name="android:windowContentTransitions">true</item>
<item name="android:windowEnterTransition">@transition/explode</item>
<item name="android:windowExitTransition">@transition/explode</item>

现在,您可以开始以下活动:

ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this);
Intent intent = new Intent(MainActivity.this, SecondActivitiy.class);
startActivity(intent, options.toBundle());

出现错误:未知的动画名称:transitionManager,我认为我的XML代码不正确,您能提供正确的explode XML文件吗? - MJakhongir
2
@HeisenBrg,我想在这里问几个问题1)在ActivityOptions或其他任何地方,我们没有编写任何反映我们使用特定explode转换的代码段,Android如何知道我们要使用该转换。2)如果我们在转换文件夹中增加更多转换,如何指定哪个活动会发生哪个转换?3)我们可以只使用Java中的Explode explode = new Explode()来在活动之间进行过渡吗? 如果可以,我们如何完成它。感谢您的回答。 - Hissaan Ali
1
@SyedHissaan 我会给你解释所有问题的答案。但是,首先,我想知道这段代码是否能在你那里运行。 - Aditya
@HeisenBrg,感谢您的礼貌,这段代码对我很有用。 - Hissaan Ali
@HeisenBrg,能否请您解释一下。 - Hissaan Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接