如何在Android中为视图添加animation,并使其保持在新的位置/大小?

我目前在我的Android应用程序中有一个视图,视图正在播放帧animation。 我想animation的观点,以增加到150%的大小。 当我将一个缩放animation应用到它上面,并且缩放animation已经完成时,我希望这个视图在整个活动生命周期的其余部分保持这个新的大小。 不幸的是,现在当放大animation完成时,视图会回到原始大小。 我怎样才能让它保持新的animation变形?

我在用着

myView.startAnimation(AnimationUtils.loadAnimation(mContext,R.anim.scaleUp150)); 

谢谢!

确保将以下属性添加到animationxml的根元素中:

 android:fillAfter="true" android:fillEnabled="true" 

尝试从代码构buildanimation并设置像这样的属性

 anim.setFillEnabled(true); anim.setFillAfter(true); 

如果你想把你的animation放在一个xml中 ,它可能需要这个帮助:

 <set android:fillEnabled="true" android:fillAfter="true" xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="-20%p" android:duration="7000" /> </set> 

https://stackoverflow.com/a/6519233/371749

请也欣赏其他答案, 帮我:)祝你好运!

现在变得非常简单:

 view.animate().x(valueX).y(valueY).setDuration(500).start(); 

(在这个片段ViewPropertyAnimator已被使用)。

有可能追加多个其他选项。

视图将位于新的位置。

编辑:Qlimax的答案是更好的,但由于OP没有返回来改变复选标记,我不能删除一个接受的答案,我将它复制在这里:只是设置fillAfter = true fillEnabled = true

我的原始答案(这是有效的,但比较起来有点滑稽)如下:

为了让animation在animation之后按照预期工作,至less根据这个线程 ,你必须编写一个onAnimationEnd处理函数,然后在那里手动调整你的视图的“真实”(预转换)边界以匹配最终结果的规模animation。

实际上,由于您使用的animation似乎是embedded在Android框架中的animation,我不确定您可以在其中更改任何内容。
但是,您可以按照文档中的示例创build自己的animation。 如果你想在animation结束之后保持缩放,你必须把android:fillAfter =“true”。

在SET标签中放入android:fillAfter =“true” – 将它们放在animation标签中,将它们限制在“转换参数”或“在/在animation参数期间/期间”。 SET中的参数将在完成animation之后应用您正在查找的转换。