gpt4 book ai didi

android - 使用带有 ChangeImageTransform 的共享元素转换在两个 Activity 之间为 ImageView 设置动画

转载 作者:IT老高 更新时间:2023-10-28 23:29:37 29 4
gpt4 key购买 nike

我正在尝试将一个 ImageView 动画到 Android API 级别 21 中两个 Activity 之间的另一个位置。由于 Android L Preview 中的“MoveImage”已被删除,我使用“ChangeImageTransform”代替,但文档中的示例代码没有不行(这两张图片分别动画)。

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeImageTransform>
<targets>
<target android:targetId="@id/ivA" />
<target android:targetId="@id/ivB" />
</targets>
</changeImageTransform>
</transitionSet>

有什么可行的例子吗?谢谢!

最佳答案

要在具有共享元素的两个 Activity 之间制作屏幕过渡动画,你可以阅读this article并按照上述步骤操作:

  1. Enable window content transitions in your theme.
  2. Specify a shared elements transition in your style.
  3. Define your transition as an XML resource.
  4. Assign a common name to the shared elements in both layouts with the android:transitionName attribute.
  5. Use the ActivityOptions.makeSceneTransitionAnimation() method.

关于第3步,根据documentation :

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

res/transition/your_transition.xml 应该是这样的:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeBounds>
<targets>
<target android:targetId="@id/ivA" />
<target android:targetId="@id/ivB" />
</targets>
</changeBounds>
<changeImageTransform>
<targets>
<target android:targetId="@id/ivA" />
<target android:targetId="@id/ivB" />
</targets>
</changeImageTransform>
</transitionSet>

如果只需要对 ivA 和 ivB 进行动画处理,也可以这样:

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

关于android - 使用带有 ChangeImageTransform 的共享元素转换在两个 Activity 之间为 ImageView 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600239/

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