Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何在finish()之后从不同的活动中设置多个视图的动画?_Android_Xml_Transition - Fatal编程技术网

Android:如何在finish()之后从不同的活动中设置多个视图的动画?

Android:如何在finish()之后从不同的活动中设置多个视图的动画?,android,xml,transition,Android,Xml,Transition,我想有一个新活动视图的缩放动画,与移动按钮平行,旧活动的图像视图在屏幕外移动的不同方向。 overridependingtransition()需要xml资源,但您不能为单个视图编写代码,例如缩放。 使用Java代码,我无法启动新活动(使用动画)同时启动旧活动的动画。 我怎样才能做到这一点? 最好使用XML编码 下面是我想做的一个例子: 您描述的内容看起来像是两个活动之间的过渡。您可以使用新活动转换的API。请看这里: 请记住,兼容性级别为21。它只适用于棒棒糖设备。 如果您想在21岁以下兼容,

我想有一个新活动视图的缩放动画,与移动按钮平行,旧活动的图像视图在屏幕外移动的不同方向。 overridependingtransition()需要xml资源,但您不能为单个视图编写代码,例如缩放。 使用Java代码,我无法启动新活动(使用动画)同时启动旧活动的动画。 我怎样才能做到这一点? 最好使用XML编码

下面是我想做的一个例子:

您描述的内容看起来像是两个活动之间的过渡。您可以使用新活动转换的API。请看这里: 请记住,兼容性级别为21。它只适用于棒棒糖设备。 如果您想在21岁以下兼容,您可以尝试自己实现它

  • 第一步是通过在startActivity()之后调用overridePendingTransition(0,0)来覆盖转换
  • 第二步是使新活动的背景透明,并放置要设置动画的视图。
    例如,如果希望将第一个活动中的imageview放大并移动到新活动中的新位置,则可以根据意图将imageview的坐标和大小发送到新活动,然后在新活动中移动并缩小imageview,以与上一个活动中的imageview重叠(因为背景是透明的)。
    要将其设置为真实大小,只需将scaleX()scaleY()设置为1(新活动中的原始大小),将translationX()translationY()设置为0(新活动中的原始位置)作为其位置
  • 然后,在新活动的布局完成后,可以将视图设置为新位置的动画。请参阅

我已经阅读了PropertyAnimation View Animation tween等,但没有找到解决此问题的方法。如果我使用overridependingtransition,我只能为整个活动设置动画。在使背景透明后,我在步骤2中应该做什么?将新旧活动中的所有视图放置在此新活动中,并让动画制作者制作动画ree活动,其中第二个活动仅用于制作动画?@user3642735我已编辑了我的答案。请记住,要将视图从第一个活动中的位置a放置到新活动中的位置B,需要将坐标a发送到新活动,获取活动B中视图的坐标,不要他减去x和y(B.x-A.x和B.y-A.y)并使用setTranslationX(),setTranslationY()根据结果,将新视图放置在旧视图的顶部。我需要位置吗?我使用的是带权重的线性布局。老实说,我不知道该怎么办。抱歉><所以你的解决方案是将ActivityOld中的按钮放入ActvityNew并在那里设置动画?你是这样说的吗?