如何将两个图像视图从中心动画到彼此相反?

时间:2013-04-24 12:22:49

标签: android animation

我希望将两个图像从屏幕中间设置为相互对称。如下图所示。

enter image description here

到目前为止,无论我做了什么,现在我只能从左到右动画一幅图像,反之亦然,但现在我想从中间动画它们。

这是我的代码:

b1 = (Button) findViewById(R.id.button1);
        logo = (ImageView) findViewById(R.id.imageView1);

        Display display = getWindowManager().getDefaultDisplay();
        width = display.getWidth();
        final Animation posX = new TranslateAnimation(0, width - 50, 0, 0);
        posX.setDuration(1500);
        posX.setFillAfter(true);

        b1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                logo.startAnimation(posX);
                logo.setVisibility(View.VISIBLE);
            }
        });

修改

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:background="@drawable/set_user_profile_back"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="50dp"
            android:contentDescription="@string/hello_world"
            android:src="@drawable/prev_btn" />

        <ImageView
            android:id="@+id/ImageView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/imageView1"
            android:contentDescription="@string/hello_world"
            android:src="@drawable/next_btn" />
    </RelativeLayout>

由于

1 个答案:

答案 0 :(得分:4)

    ImageView img1 = findViewById(R.id.img1);
    ImageView img2 = findViewById(R.id.img2);

        Animation img1_Anim = AnimationUtils.loadAnimation(this,
                R.anim.img1_animation);
        img1_Anim.setAnimationListener(AnimationListener);
        img1.startAnimation(img1_Anim);

Animation img2_Anim = AnimationUtils.loadAnimation(this,
                R.anim.img2_animation);
        img2_Anim.setAnimationListener(AnimationListener);
        img2.startAnimation(img2_Anim);

    private AnimationListener AnimationListener = new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {


            }
        };

<强> img1_animation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true" >

    <translate
        android:duration="500"
        android:fromXDelta="50%"
        android:toXDelta="0%" />



</set>

<强> img2_animation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true" >

    <translate
        android:duration="500"
        android:fromXDelta="50%"
        android:toXDelta="100%" />



</set>