使用TranslateAnimation在屏幕上反复移动内容的有效方法

时间:2011-08-03 04:17:03

标签: android

我很难在Android中找到有关动画的好文档,但我设法让我的动画工作。我关注的方式是效率/性能。

我的目标是让云图像一遍又一遍地在屏幕上移动并永远重复。为此,我最终将2个相同的ImageView放在彼此之上并定义了2个动画:

cloud_slide_exit.xml:

<translate
        android:fromYDelta="0"
        android:toXDelta="-100%p"
        android:duration="25000"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        />

cloud_slide_enter.xml:

<translate
        android:fromYDelta="0"
        android:fromXDelta="100%p"
        android:duration="25000"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        />

我将第一个动画应用于“image1”,将第二个动画应用于“image2”。第一个动画将“image1”从右侧(屏幕上)移动到左侧(离屏),而第二个动画将“image2”(从屏幕开始)从右侧(离屏)移动到左侧(屏幕外)。查看两个动画时的最终结果是图像在屏幕上移动。当它到达屏幕的左端时,它将从屏幕的右侧开始。这是我能想到的唯一方法。

有没有更有效的方法来制作这个动画?我想找到一种更有效的方法,因为我实际上有3个云移动,这意味着我有6个ImageViews / TranslateAnimations。

1 个答案:

答案 0 :(得分:0)

通过以下代码替换您的代码:

cloud_slide_exit.xml:

<translate
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        android:duration="25000"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        />

cloud_slide_enter.xml:

<translate
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        android:duration="25000"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        />