Android 共享元素转换不适用于不同的 img 比例类型

use*_*943 5 java animation android android-animation

我想在从 Activity A 切换到 Activity B 时执行共享元素过渡。问题是,当共享 imageView缩放类型不同时,过渡动画无法顺利工作。我注意到在过渡的一开始就有一个“反弹”(我猜是在非动画 imageView 的scaleType 变化上)。当我从活动 B 返回到活动 A 时,我注意到同样的“反弹”。

细节:

Activity A 包含具有scaleType: centerCrop的 imageView 。Actvity B 包含具有scaleType: fitXY的 imageView 。

android:transitionName="sharedView"当然,两个 ImageView 都有。

我在 xml 中设置的转换如下所示:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
   <changeBounds/>
   <changeImageTransform/>
</transitionSet>
Run Code Online (Sandbox Code Playgroud)

关于此配置的文档中写道:

与 ChangeBounds 结合使用,ChangeImageTransform 允许 ImageView 更改大小、形状或ImageView.ScaleType以平滑地对内容进行动画处理。

那么为什么我的过渡过程并不顺利呢?changeBounds或者,如果withchangeImageTransform似乎不起作用,如何在共享元素转换期间对 scaleType 更改进行动画处理?

值得一提的是,如果我使共享视图的比例类型相等(例如 centerCrop 和 centerCrop) - 那么过渡工作顺利并且一切正常。

Irc*_*ver -2

有同样的问题。padding通过为两者设置相同的属性来解决它ImageView。我不知道为什么会这样,但希望它可以帮助别人。