我有一个如下所示的布局:(没有箭头)
布局周围的动物图片。 我想制作一个旋转动画,以便所有的动物都会朝着这个方向前进 箭头(实际上,它们应该能够围绕视图旋转360度)并替换彼此的位置。但要保持自己的方向 - 这样每只动物都会站在她的腿上而不是她的头上: - )
我现在已经坚持这个问题2天了,我不知道如何实现这个
请帮忙吗? 谢谢, 罗恩
答案 0 :(得分:12)
您可以手动为它们设置动画,例如游戏精灵。另一种选择是反对旋转动画:
rotate_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:toDegrees="0"
android:fromDegrees="359"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
android:repeatCount="infinite"
android:interpolator="@android:anim/linear_interpolator"
/>
</set>
rotate_right.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:toDegrees="359"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
android:repeatCount="infinite"
android:interpolator="@anim/lin"
/>
</set>
布局xml文件(只是顶部和底部的文本框。你必须自己实现4个角落;)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<FrameLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/outer"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:id="@+id/top"
android:text="Top"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:id="@+id/bottom"
android:text="Bottom"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
在您的活动中:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.[yourlayout]);
findViewById(R.id.outer).startAnimation(AnimationUtils.loadAnimation(this,R.anim.rotate_left));
findViewById(R.id.top).startAnimation(AnimationUtils.loadAnimation(this,R.anim.rotate_right));
findViewById(R.id.bottom).startAnimation(AnimationUtils.loadAnimation(this,R.anim.rotate_right));
}
出于某种原因,我无法使旋转正确使用线性插值器。它不断加速/减速。可能必须在代码中这样做。