棉花糖和奥利奥中的共享元素有不同的结果

时间:2018-10-01 11:37:27

标签: android shared-element-transition

我想通过共享元素创建一个类似于微信聊天活动中浏览图片的活动。   但是我发现了。使用相同的代码,我的第一部手机(Android 6.0)中的动画非常流畅。在第二部手机(Android 8.0)中,动画有点不流畅。   您是否遇到过这种情况?你知道原因吗?有解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果您的活动如下,我在演示中发现了

getWindow().setSharedElementEnterTransition(TransitionInflater.from(this).inflateTransition(R.transition.changebounds_with_test))

您的转换如下

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500">
    <changeBounds/>
    <changeImageTransform/>
    <changeClipBounds/>
    <changeTransform/>
</transitionSet>

该点是持续时间,该持续时间大于300ms(默认持续时间)。然后,共享元素的动画在Oreo中不平滑。 但是我没有在项目中设置SharedElementEnterTransition,在奥利奥中动画也不流畅。 我认为我的项目具有影响动画的任何代码逻辑,导致持续时间大于300ms。 现在,我不再使用共享元素,而是使用值动画制作过渡动画。