gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:25:34 28 4
gpt4 key购买 nike

我想在从 Activity A 切换到 Activity B 时执行共享元素过渡。问题是当共享 imageViews scale types 不同时,过渡动画无法流畅运行。我注意到在过渡开始时出现“反弹”(我猜是在非动画 imageView scaleType 更改上)。从 Activity B 返回 Activity A 时,我注意到同样的“反弹”。

详细信息:

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

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

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

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeBounds/>
<changeImageTransform/>
</transitionSet>

在关于这个配置的文档中写道:

In combination with ChangeBounds, ChangeImageTransform allows ImageViews that change size, shape, or ImageView.ScaleType to animate contents smoothly.

那么,为什么我的过渡工作不顺利?或者,如果使用 changeImageTransformchangeBounds 似乎不起作用,如何在共享元素转换期间为 scaleType 更改设置动画?

值得一提的是,如果我使共享 View 的比例类型相等(例如 centerCrop 和 centerCrop)——那么过渡会顺利进行,一切正常。

最佳答案

我已经解决了这个问题。这是您需要检查的内容:

  • 确保源和目标 Activity 的共享元素都是 ImageView(不要使用任何容器)。
  • 为 ImageView(不是它的容器)设置 transitionName

更新后,changeImageTransform 将在 2 个 ImageView 之间平滑地完成其更改 scaleType 的工作

关于java - Android 共享元素转换不适用于不同的 img 比例类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com