如何在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之后应用您正在查找的转换。