安卓旋转动画

Posted

技术标签:

【中文标题】安卓旋转动画【英文标题】:android rotating animation 【发布时间】:2011-11-03 19:41:20 【问题描述】:

我的布局如下所示:(没有箭头)

布局周围的动物图片。 我想做一个旋转动画,让所有的动物都去那个方向 的箭头(实际上,它们应该能够围绕视图旋转 360 度)并替换彼此的位置。但要保持自己的方向 - 这样每只动物都会一直站在她的腿上,而不是她的头上 :-)

我被这个问题困扰了 2 天了,我不知道如何实现这个

请帮忙? 谢谢, 罗恩

【问题讨论】:

【参考方案1】:

您可以手动为它们设置动画,例如游戏精灵。另一种选择是反对旋转动画:

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_
              android:layout_
        android:orientation="horizontal">
    <FrameLayout
            android:layout_
            android:layout_
            android:id="@+id/outer"
            >
        <LinearLayout
                android:layout_
                android:layout_
                android:orientation="vertical"
                android:gravity="center">
            <TextView
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:gravity="center"
                    android:id="@+id/top"
                    android:text="Top"/>
            <TextView
                    android:layout_
                    android:layout_
                    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));

由于某种原因,我无法正确使用线性插值器进行旋转。它不断加速/减速。可能必须在代码中这样做。

【讨论】:

如何应用动画?在 LinearLayout 或 FrameLayout 上?你能添加一些代码吗? @RonGross 嗨,Ron 你能帮我解决四个角吗 - 相同的动画。我想用四个图像实现相同的功能。谢谢 @KevinGalligan 你能帮我制作一组 4 张图片吗? :(

以上是关于安卓旋转动画的主要内容,如果未能解决你的问题,请参考以下文章

安卓自己定义基于onDraw的随意动画(不不过平移/旋转/缩放/alpha)!

应该如何在动画中旋转UIView呢?

Android属性动画之旋转动画

如何用js+jquery制作旋转动画?

iOS核心动画之图片旋转、脉冲动画、水波纹动画

Flutter动画 --- 平移/旋转/缩放/渐变