Android: 如何在 finish() 后为来自不同活动的多个视图设置动画?

Android: How to animate several views from different activities after finish()?

我想要新 activity 视图的缩放动画与移动按钮和旧 activity 的 ImageView 在不同方向上移出屏幕平行. overridependingtransition() 需要 xml 资源但是 afaik 你不能编码例如缩放单个视图。 使用 Java 代码,我无法启动新的 Activity(带动画)并同时启动旧 Activity 的动画。 我怎么能做到这一点? 最好用XML编码

这是我想做的事的一个例子: http://i.stack.imgur.com/C1jqg.png

您所描述的看起来像是两个活动之间的过渡。您可以使用新的 activity 转换的 API。看看这里:https://developer.android.com/training/material/animations.html#Transitions 请记住兼容级别是 21。它只适用于棒棒糖设备。 如果想兼容21以下,可以尝试自己实现。

  • 第一步是通过在 startActivity() 之后立即调用 overridePendingTransition(0,0) 来覆盖转换
  • 第二步是使新 activity 的背景透明并放置要设置动画的视图。
    例如,如果您希望将第一个 activity 中的图像视图放大并移动到新 activity 中的新位置,您可以将图像视图的坐标和大小发送到新的 activity 由于意图,然后移动并缩小新 activity 中的图像视图,以与之前的 activity 中的图像视图重叠(因为背景是透明的)。
    要将其设置为实际大小,您只需将 scaleX() scaleY() 设置为 1(新 activity 中的原始大小),并将 translationX() translationY() 设置为 0(原始大小) position in the new activity) 作为它的位置。
  • 然后在新 activity 的布局之后,您可以将视图动画化到它们的新位置。参见 http://developer.android.com/guide/topics/graphics/overview.html