我正在尝试设置一个简单的动画,在屏幕的右上角拍摄一个图像,将其移动到 30% 点,绕圈移动,然后它们移回边缘。见下图。然而,当前的脚本做了一些奇怪的事情,虽然它在正确的地方结束了,但在那之前几乎没有什么是正确的。此外,根据 Android 版本和屏幕尺寸,它可能会做更疯狂的事情。任何帮助将非常感激。谢谢!
几个关键点。我希望开始时的左边缘始终面向运动方向。我想要一个从左向右移动的圆周运动,但如果做不到,我不会坚持下去,只要第一部分成立。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:shareInterpolator="true">
<set>
<translate
android:fromXDelta="0%p" android:toXDelta="0%p"
android:fromYDelta="00%p" android:toYDelta="20%p"
android:duration="001" android:startOffset="0"/>
<translate
android:fromXDelta="0%p" android:toXDelta="-80%p"
android:fromYDelta="00%p" android:toYDelta="0%p"
android:duration="2000" android:startOffset="1"/>
</set>
<set>
<rotate
android:fromDegrees="180"
android:toDegrees="0"
android:pivotY="20%p"
android:duration="1000"
android:startOffset="2000"/>
<translate
android:fromXDelta="0%p" android:toXDelta="70%p"
android:fromYDelta="00%p" android:toYDelta="0%p"
android:duration="100"
android:startOffset="3000"/>
</set>
</set>
最佳答案
我在一个新的 android 项目中完成了这个,在主 xml 布局中有一个按钮。有效。所有百分比都是相对于 View 位置的父大小。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate android:fromXDelta="0%p" android:toXDelta="-80%p"
android:fromYDelta="0%p" android:toYDelta="0%p"
android:duration="2000" />
<rotate android:fromDegrees="0" android:toDegrees="-180"
android:pivotX="-70%p" android:pivotY="10%p" android:duration="1000"
android:startOffset="2000" />
<translate
android:fromXDelta="0%p" android:toXDelta="80%p"
android:fromYDelta="0%p" android:toYDelta="0%p" android:duration="2000"
android:startOffset="3000" />
</set>
关于android - 动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034547/