如何在Android应用程序中一个接一个地移动图像?

时间:2011-09-09 12:03:45

标签: android android-animation

我正在开发android应用程序。我需要在第一个动画进行时开始第二个动画。

我需要在一段时间后逐个移动图像。我在main.xml中使用了framelayout和两个imageView。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <ImageView android:src="@drawable/ars1" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
            android:id="@+id/imageView2">
    </ImageView>

    <ImageView android:src="@drawable/ars" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
            android:id="@+id/imageView1">
    </ImageView>


</FrameLayout>

下面是我的animation.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="100%p" android:toXDelta="-100%p" 
        android:duration="1500" />

</set>

在我的活动类的oncreate方法中,我正在做类似下面的工作。

ImageView imageView1;
ImageView imageView2;
Animation tranOut;

     tranOut = AnimationUtils.loadAnimation(this, R.anim.animation);

    imageView1 = (ImageView)findViewById(R.id.imageView1);
    imageView1.setAnimation(tranOut);

    imageView2 = (ImageView)findViewById(R.id.imageView2);
    imageView2.setAnimation(tranOut);

请告诉我如何一个接一个地移动这两个图像。

由于 乔蒂

2 个答案:

答案 0 :(得分:0)

尝试使用动画侦听器,使用onAnimationEnd(),然后启动第二个。有关动画监听器的更多信息,请参阅以下链接。

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

答案 1 :(得分:0)

我经常搜索并最终使用ImageSwitcher进行搜索。

animation.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="150%p" android:toXDelta="0%p" 
        android:duration="1500" />

</set>

animation1.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="0%p" android:toXDelta="-150%p" 
         android:duration="1500"  />

</set>

helloworld.java:

public class helloworld extends Activity implements ViewFactory {

public void onCreate(Bundle savedInstanceState) {

Animation rollIn = AnimationUtils.loadAnimation(this, R.anim.animation);
Animation rollOut = AnimationUtils.loadAnimation(this, R.anim.animation1);

final ImageSwitcher iSwitcher = (ImageSwitcher)findViewById(R.id.ImageSwitcher01);

iSwitcher.setFactory(this);
iSwitcher.setInAnimation(rollIn);
iSwitcher.setOutAnimation(rollOut);
iSwitcher.setImageResource(R.drawable.img1);

// TODO: Change the image in ImageSwitcher on end of animation rollIn.

}

以上代码是实现此功能的基本代码(图像一个接一个地移动)。您可以根据自己的要求对其进行修改。